PHP isset 检测一个值为null的变量将会返回false.
按正常逻辑,当一个变量被赋值为null时,并不意味着这个变量不存在,
要绕开PHP这个诡异的逻辑,可以使用array_key_exists()来检测全局变量是否存在,并且当这个变量值为null时也返回true.- <?php
- $wxc = null;
- var_dump(isset($wxc));
- var_dump(array_key_exists('wxc',$GLOBALS));
- ?>
复制代码 运行结果如下对于类属性,可以使用property_exists()来检测可能为null值的属性- <?php
- class A{
- public $wxc;
- }
- $a = new A;
- var_dump(isset($a->wxc));
- var_dump(property_exists($a,'wxc'));
- ?>
复制代码 运行结果同上。
当然,大多数情况下,并不需要纠结null的问题。 |
|