我尝试做的是编写一个函数来重用,每次都写出一个if语句。
如果声明:
if (!isset($value)){ echo 'null';}else{ echo $value;}
功能:
function isSetTest($value){
if ( !isset($value)){
$value = NULL;
}
return $value;
}
echo'name'.isSetTest($value);
功能有效,但我仍然得到" undefined"错误消息,这是我试图避免的。
答案 0 :(得分:1)
通过引用传递,以便在您需要之前不会对变量进行处理:
function isSetTest(&$value) { // note the &
if (!isset($value)) {
$value = NULL;
}
return $value;
}
你可以稍微缩短一点:
function isSetTest(&$value) {
return isset($value) ? $value : null;
}
我有一个类似的功能,除非你可以在没有设置变量的情况下提供一个可选的默认值:
function isset_or(&$value, $default = null) {
return isset($value) ? $value : $default;
}
答案 1 :(得分:0)
代码中的问题是,您仍然将未定义的变量传递给您的函数,这就是为什么您仍然会收到未定义的错误。
现在解决这个问题的一种方法是,将变量名称作为字符串传递,然后使用variable variables来检查它是否存在,例如。
function isSetTest($value){
global $$value;
if ( !isset($$value)){
$$value = NULL;
}
return $$value;
}
echo'name'.isSetTest("value");