考虑到:
有没有办法测试变量是否存在,无论它是否为NULL,而不使用@运算符来抑制通知?
编辑
连同你的第一个回复,我一直在考虑这个,我得出结论,检查get_defined_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');
?>
Run Code Online (Sandbox Code Playgroud)