首頁 >後端開發 >php教程 >php中0,空,null和false之間有何差別(程式碼範例)

php中0,空,null和false之間有何差別(程式碼範例)

不言
不言原創
2018-09-12 16:56:331885瀏覽

這篇文章帶給大家的內容是關於php中0,空,null和false之間有何區別,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

$a =  0; 
$b="0"; 
$c= ''; 
$d= null; 
$e = false;
 
echo "5个变量-原始测试类型";
    var_dump($a);//int 0
    var_dump($b);//string '0'
    var_dump($c);//string ''
    var_dump($d);//null
    var_dump($e);//boolean false
 
echo "<h4>empty测试</h4>";
    var_dump(empty($a));//true
    var_dump(empty($b));//true
    var_dump(empty($c));//true
    var_dump(empty($d));//true
    var_dump(empty($e));//true
 
echo "<hr>";
    var_dump(isset($a));//true
    var_dump(isset($b));//true
    var_dump(isset($c));//true
    var_dump(isset($d));//【false】 见结论一
    var_dump(isset($e));//true
 
echo "<h4>(==)双等式测试</h4>";
    var_dump($a == $b);//true
    var_dump($a == $c);//true
    var_dump($a == $d);//true
    var_dump($a == $e);//true !!
 
    var_dump($b == $c);//【false】见结论二
    var_dump($b == $d);//【false】见结论二
    var_dump($b == $e);//true
 
    var_dump($c == $d);//true
    var_dump($c == $e);//true
 
echo "<h4>(===)三等式测试</h4>";
    var_dump($a === $b);//false
    var_dump($a === $c);//false
    var_dump($a === $d);//false
    var_dump($a === $e);//false
 
    var_dump($b === $c);//false
    var_dump($b === $d);//false
    var_dump($b === $e);//false
 
    var_dump($c === $d);//false
    var_dump($c === $e);//false

總結:

對於【0#;'0' ;''null; false】五種型別

empty操作以上五個變量,都回傳false

強等於(=== )比較都為false,同強語言結果(三個等號比較不但要比較值,而且要比較類型)

但對於(==)比較,需要注意string類型,涉及到底層結構與型別轉換

結論一:關於變數型別的理解

#1.null為不存在之意:php底層的zval空間(結構見下方)沒有存其value值,只儲存了一個type標誌其IS_NULL(所以解釋了empty(null)=true,isset(null)=false ,isset('')=true)

#2.【 0 ; '0' ; '' ; false 】:這四個為存在,php底層是開闢zval空間存儲,有value,有type

結論二:

1、string '0'與string '' 不相等,(想一下就懂,同型別比較【1個長度】的字串怎麼可能等於【0個長度】 的字串)

2、int 0 卻和string '' 空相等,(非同類形比較,php會做型別轉換)

3、string '0' null 不相等,int 0 null 相等

相關推薦:

#php中0與null與false與空的差異

以上是php中0,空,null和false之間有何差別(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn