この記事の内容は、PHP における 0、empty、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]5 つのタイプ
empty は上記の 5 つの変数を演算し、すべて false を返します
(=== と完全に等しい) ) 比較はすべて false であり、これは強力な言語の結果と同じです (3 つの等号の比較では、値だけでなく型も比較する必要があります)
ただし、(==##) #) 比較が必要です。文字列型に注意してください。これには基礎となる構造と型変換が含まれます。
結論 1: 変数の型について理解する1.null は存在しないことを意味します。 PHP の下部にある zval スペース (以下の構造を参照) は値を保存せず、型フラグ IS_NULL のみを保存します (つまり、empty(null)=true、isset(null)=false、isset('') を説明します) =true)2.【0 ; '0' ; '' ; false ]: この 4 つ存在します。php の最下層は、zval スペース ストレージを開くことです。値と型
があります。結論 2: 1。文字列'0' は等しくありません。文字列 '' に変換します (考えればわかります)、同じ型を比較すると、[長さ 1] の文字列が [長さ 0] の文字列とどのように等しくなりますか)
2、int0 は string '' と同じです Null 等価、(同一でない比較、PHP が型変換を行います)
3、string'0' は null と等しくない、int 0 は null
と等しい 関連推奨事項:php
における 0 と null、false と empty の違い
以上がPHPの0、空、null、falseの違いは何ですか(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。