標籤:結果 hidden net color http target 關於 區別 href
1 $a = 0; 2 $b="0"; 3 $c= ‘‘; 4 $d= null; 5 $e = false; 6 7 echo "5個變數-原始測試類型"; 8 var_dump($a);//int 0 9 var_dump($b);//string ‘0‘10 var_dump($c);//string ‘‘11 var_dump($d);//null12 var_dump($e);//boolean false13 14 echo "<h4>empty測試</h4>";15 var_dump(empty($a));//true16 var_dump(empty($b));//true17 var_dump(empty($c));//true18 var_dump(empty($d));//true19 var_dump(empty($e));//true20 21 echo "<hr>";22 var_dump(isset($a));//true23 var_dump(isset($b));//true24 var_dump(isset($c));//true25 var_dump(isset($d));//【false】 見結論一26 var_dump(isset($e));//true27 28 echo "<h4>(==)雙等式測試</h4>";29 var_dump($a == $b);//true30 var_dump($a == $c);//true31 var_dump($a == $d);//true32 var_dump($a == $e);//true !!33 34 var_dump($b == $c);//【false】見結論二35 var_dump($b == $d);//【false】見結論二36 var_dump($b == $e);//true37 38 var_dump($c == $d);//true39 var_dump($c == $e);//true40 41 echo "<h4>(===)三等式測試</h4>";42 var_dump($a === $b);//false43 var_dump($a === $c);//false44 var_dump($a === $d);//false45 var_dump($a === $e);//false46 47 var_dump($b === $c);//false48 var_dump($b === $d);//false49 var_dump($b === $e);//false50 51 var_dump($c === $d);//false52 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 相等
文章轉自:70217267
php中0,空,null和false的區別【簡記】