function myCheck($in)
{ return isset($in); }
$var1='Something';
$var2='$var1';
$var3='$varNonExitant';
我想要实现的是用来myCheck
评估内容的存在,如下所示:
myCheck($var2) return true;
myCheck($var3) return false;
function myCheck($in)
{ return isset($in); }
$var1='Something';
$var2='$var1';
$var3='$varNonExitant';
我想要实现的是用来myCheck
评估内容的存在,如下所示:
myCheck($var2) return true;
myCheck($var3) return false;
isset()并不是一个真正的函数:它是一种语言结构。因此,它可以做一些常规函数无法使用的魔法,例如输入不存在的变量。
总而言之:您无法使用自定义功能复制它。
编辑:
正如DaveRandom 在下面的评论中指出的那样,您所能做的就是通过检查变量是否为 isset 来接近,例如:
function variable_isset(&$variable = NULL) {
return isset($variable);
}
这种方法有两个缺点:
这通过引用传递未设置的变量来工作,从而在调用时创建它。因为它是 NULL 它仍然没有设置。
如果变量不存在,它将触发未定义变量通知,从而破坏优雅处理可选变量的整个概念。
这很可能不需要。所以问题仍然存在,为什么你不能isset
首先使用它来为你提供更好的指导。
当你调用 myCheck($abc) 并设置 $abc = 123 时,它会得到 myCheck(123)。这不是 isset 的任何有效论据。
你必须给函数一个带有变量名的字符串:
function isset_global($variable_name)
{
return isset($GLOBALS[$variable_name]);
}
当然,我也想知道,为什么要这样做,但只要你检查一个全局变量,它就回答了这个问题。