天天看點

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的情況