ホームページ  >  記事  >  バックエンド開発  >  PHPの0、空、null、falseの違いは何ですか(コード例)

PHPの0、空、null、falseの違いは何ですか(コード例)

不言
不言オリジナル
2018-09-12 16:56:331850ブラウズ

この記事の内容は、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、int

0 は string '' と同じです Null 等価、(同一でない比較、PHP が型変換を行います)

3、string

'0' null と等しくない、int 0 null

と等しい 関連推奨事項:

php
における 0 と null、false と empty の違い

以上がPHPの0、空、null、falseの違いは何ですか(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。