php中empty、isset、is_null、!!、==null、==0区分

来源:互联网 发布:成都学软件开发 编辑:程序博客网 时间:2024/05/29 17:50

涉及到判断时,经常是凭感觉或者经验,稍微总结下几个常用的方法及判断方式。参考了这两篇博客,并总结了下。
参考一
参考二
话不多说,先上代码

$a;$b = false;$c = '';$d = 0;$e = null;$f = array();
  • isset
echo '=========isset=============';var_dump(isset($a));  // $avar_dump(isset($b));  // $b = falsevar_dump(isset($c));  // $c = '';var_dump(isset($d));  // $d = 0var_dump(isset($e));  // $e = nullvar_dump(isset($f));  // $f = array();

结果

这里写图片描述

  • is_null
echo '=========is_null=============';var_dump(is_null($a));  // $avar_dump(is_null($b));  // $b = falsevar_dump(is_null($c));  // $c = '';var_dump(is_null($d));  // $d = 0var_dump(is_null($e));  // $e = nullvar_dump(is_null($f));  // $f = array();

结果:警告忽略不讨论,以下都一样
这里写图片描述

  • empty
echo '=========empty=============';var_dump(empty($a));  // $avar_dump(empty($b));  // $b = falsevar_dump(empty($c));  // $c = '';var_dump(empty($d));  // $d = 0var_dump(empty($e));  // $e = nullvar_dump(empty($f));  // $f = array();

结果
这里写图片描述

  • !!
echo '========= !! =============';var_dump(!!$a);  // $avar_dump(!!$b);  // $b = falsevar_dump(!!$c);  // $c = '';var_dump(!!$d);  // $d = 0;var_dump(!!$e);  // $e = null;var_dump(!!$f);  // $f = array();

结果
这里写图片描述

  • 是否==null
echo '========= 是否等于null =============';var_dump($a==null);  // $avar_dump($b==null);  // $b = falsevar_dump($c==null);  // $c = '';var_dump($d==null);  // $d = 0;var_dump($e==null);  // $e = null;var_dump($f==null);  // $f = array();

结果
这里写图片描述

  • 是否等于0
echo '========= 是否等于0 =============';var_dump($a==0);  // $avar_dump($b==0);  // $b = falsevar_dump($c==0);  // $c = '';var_dump($d==0);  // $d = 0;var_dump($e==0);  // $e = null;var_dump($f==0);  // $f = array();

结果
这里写图片描述

各情况结果如图

类别 isset is_null empty !! ==null ==0 $a false true true false true true $b = false true false true false true true $c = ”; true false true false true true $d = 0; true false true false true true $e = null; false true true false true true $f = array(); true false true false true false

总结

  1. isset判断是否已经存在,只有未做赋值操作或者值为null的才返回 false
  2. is_null的判断依据与isset相同,但是返回值相反
  3. empty判断是否为空,两种情况下返回true,第一,不存在的一定为空(即isset返回为false的),包括 $a; $e=null;第二,存在的,但是值为空的,$b = false;$c =”; $d = 0;$f = array();
  4. !!与empty情况一致,返回结果相反
  5. 是否==null 与empty情况一致
  6. 是否==0,除去数组情况外,对无声明,整型和字符串的判断 与 empty相同

注意

对涉及到整型的判断时,要单独查看0的情况