function myCheck($in)
{ return isset($in); }
$var1='Something';
$var2='$var1';
$var3='$varNonExitant';
我想要实现的是使用myCheck
评估内容的存在,如下所示:
myCheck($var2) return true;
myCheck($var3) return false;
答案 0 :(得分:6)
isset()实际上不是一个函数:它是一种语言结构。因此,它允许做一些常规功能无法使用的魔法,例如使用不存在的变量。
总结一下:你不能用自定义函数复制它。
修改强>
如下面的 DaveRandom pointed out in a comment,您所能做的就是通过检查变量是否设置为止:
function variable_isset(&$variable = NULL) {
return isset($variable);
}
这种方法有两个缺点:
这可以通过引用传递未设置的变量,从而在调用时创建它。由于它是NULL,它仍未设置。
如果变量不存在,它将触发未定义变量通知,破坏了优雅处理可选变量的整个概念。
最有可能不需要这样做。所以问题仍然是你不能首先使用isset
为什么更需要为你提供更好的指导。
答案 1 :(得分:-2)
当你使用set $ abc = 123来调试myCheck($ abc)时,它会获得myCheck(123)。它不是isset的任何有效参数。
您必须为函数指定一个带有变量名称的字符串:
function isset_global($variable_name)
{
return isset($GLOBALS[$variable_name]);
}
当然,我也想知道,为什么要这样做,但只要你检查一个全局变量它就会回答这个问题。