找回密码
 注册

[PHP] php isset检测值为null的变量

php 发表于 2015/11/21 16:52 | 显示全部楼层 |阅读模式
PHP isset 检测一个值为null的变量将会返回false.
按正常逻辑,当一个变量被赋值为null时,并不意味着这个变量不存在,
要绕开PHP这个诡异的逻辑,可以使用array_key_exists()来检测全局变量是否存在,并且当这个变量值为null时也返回true.
  1. <?php
  2.         $wxc = null;
  3.         var_dump(isset($wxc));
  4.         var_dump(array_key_exists('wxc',$GLOBALS));
  5. ?>
复制代码
运行结果如下
  1. bool(false) bool(true)
复制代码
对于类属性,可以使用property_exists()来检测可能为null值的属性
  1. <?php
  2.         class A{
  3.                 public $wxc;
  4.         }
  5.         $a = new A;
  6.         var_dump(isset($a->wxc));
  7.         var_dump(property_exists($a,'wxc'));
  8. ?>
复制代码
运行结果同上。

当然,大多数情况下,并不需要纠结null的问题。

手机版|轻松E站

轻松E站

快速回复 返回顶部 返回列表