用于检查数组中的变量是否已设置的自定义函数

时间:2015-06-24 22:07:49

标签: php function

我尝试做的是编写一个函数来重用,每次都写出一个if语句。

如果声明:

if (!isset($value)){ echo 'null';}else{ echo $value;}

功能:

function isSetTest($value){
    if ( !isset($value)){
       $value = NULL;
    }
    return $value;
}

echo'name'.isSetTest($value);

功能有效,但我仍然得到" undefined"错误消息,这是我试图避免的。

2 个答案:

答案 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");

Demo

相关问题