【发布时间】:2011-07-29 22:03:32
【问题描述】:
我的代码:
function Check($Variable, $DefaultValue) {
if(isset($Variable) && $Variable != "" && $Variable != NULL) {
return $Variable;
}
else {
return $DefaultValue;
}
}
$a = Check(@$foo, false);
$b = Check(@$bar, "Hello");
//$a now equals false because $foo was not set.
//$b now equals "Hello" because $bar was not set.
- 当变量不存在并传递给函数(抑制错误)时,实际传递的是什么?
- 此函数是否存在任何未定义的行为?
- 有没有更好的方法来包装变量存在的测试并从函数中提供默认值?
-
isset()在测试变量时在后台检查什么?
编辑:
默认值是用户定义的。有时是数字,有时是字符串。
【问题讨论】:
-
如果您的函数正在通过引用查找某些内容,您可以传递一个未设置的变量。唯一的缺点是它不能接受表达式,只能接受变量。
function Check(&$Variable, $DefaultValue) { ...