天天看点

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

涉及到判断时,经常是凭感觉或者经验,稍微总结下几个常用的方法及判断方式。参考了这两篇博客,并总结了下。

参考一

参考二

话不多说,先上代码

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

结果

php中empty、isset、is_null、!!、==null、==0区分
  • is_null
echo '=========is_null=============';
var_dump(is_null($a));  // $a
var_dump(is_null($b));  // $b = false
var_dump(is_null($c));  // $c = '';
var_dump(is_null($d));  // $d = 
var_dump(is_null($e));  // $e = null
var_dump(is_null($f));  // $f = array();
           

结果:警告忽略不讨论,以下都一样

php中empty、isset、is_null、!!、==null、==0区分
  • empty
echo '=========empty=============';
var_dump(empty($a));  // $a
var_dump(empty($b));  // $b = false
var_dump(empty($c));  // $c = '';
var_dump(empty($d));  // $d = 
var_dump(empty($e));  // $e = null
var_dump(empty($f));  // $f = array();
           

结果

php中empty、isset、is_null、!!、==null、==0区分
  • !!
echo '========= !! =============';
var_dump(!!$a);  // $a
var_dump(!!$b);  // $b = false
var_dump(!!$c);  // $c = '';
var_dump(!!$d);  // $d = ;
var_dump(!!$e);  // $e = null;
var_dump(!!$f);  // $f = array();
           

结果

php中empty、isset、is_null、!!、==null、==0区分
  • 是否==null
echo '========= 是否等于null =============';
var_dump($a==null);  // $a
var_dump($b==null);  // $b = false
var_dump($c==null);  // $c = '';
var_dump($d==null);  // $d = ;
var_dump($e==null);  // $e = null;
var_dump($f==null);  // $f = array();
           

结果

php中empty、isset、is_null、!!、==null、==0区分
  • 是否等于0
echo '========= 是否等于0 =============';
var_dump($a==);  // $a
var_dump($b==);  // $b = false
var_dump($c==);  // $c = '';
var_dump($d==);  // $d = ;
var_dump($e==);  // $e = null;
var_dump($f==);  // $f = array();
           

结果

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

各情况结果如图

类别 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的情况