考虑到:
- The isset() http://es.php.net/isset如果设置了变量且非 NULL,则构造返回 TRUE
- The 一片空白() http://es.php.net/is_null如果未设置变量,函数会抛出警告
有没有一种方法可以测试变量是否存在,无论它是否为 NULL,而不使用 @ 运算符来抑制通知?
EDIT
结合您的第一个回复,我一直在考虑这个问题,并且得出的结论是,检查 get_define_vars() 是区分设置为 NULL 的变量和未设置的变量的唯一方法。 PHP 似乎没有什么区别:
<?php
$exists_and_is_null = NULL;
// All these are TRUE
@var_dump(is_null($exists_and_is_null));
@var_dump(is_null($does_not_exist));
@var_dump($exists_and_is_null===NULL);
@var_dump($does_not_exist===NULL);
@var_dump(gettype($exists_and_is_null)=='NULL');
@var_dump(gettype($does_not_exist)=='NULL');
?>
$result = array_key_exists('varname', get_defined_vars());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)