プログラム開発では、変数が空かどうかを判断する必要があるとき、isset()、empty()、is_null() が常に混乱することがあります。以下にそれらの違いを紹介しましょう
1. isset、変数が初期化されているかどうかを判断します
isset()、変数が設定されているかどうかを判断します、変数が空かどうかは判断しません配列内の要素が定義されているかどうかを判断するために使用できます
コードの説明:
<?php $a = ''; $a['c'] = ''; if (!isset($a)) echo '$a 未被初始化' . ""; if (!isset($b)) echo '$b 未被初始化' . ""; if (isset($a['c'])) echo '$a 已经被初始化' . ""; // 显示结果为 // $b 未被初始化 // $a 已经被初始化 ?>
2.空、変数が「空」かどうかを検出します
empty(), any 初期化されていない変数、値が 0 または false の変数、または空の文字列 "" または null、空の配列、または属性のないオブジェクトは empty()==true
と判断されます。注 1: 初期化されていない変数は、empty によって「空」として検出されることもあります
注 2: empty はステートメントではなく変数のみを検出します
コードの説明:
<?php $a = 0; $b = ''; $c = array(); if (empty($a)) echo '$a 为空' . ""; if (empty($b)) echo '$b 为空' . ""; if (empty($c)) echo '$c 为空' . ""; if (empty($d)) echo '$d 为空' . ""; ?>
3. $a == null、変数が「空」かどうかを判断します
#注: 値が 0 または false の変数および空の配列、または空の文字列 "" または null は null と判断されます注: 空との明らかな違いは、変数 $a が初期化されていない場合、$a == null はエラーを報告することです。 コードの説明:<?php $a = 0; $b = array(); if ($a == null) echo '$a 为空' . ""; if ($b == null) echo '$b 为空' . ""; if ($c == null) echo '$b 为空' . ""; // 显示结果为 // $a 为空 // $b 为空 // Undefined variable: c ?>4. is_null、変数が「null」かどうかを検出しますis_null()、変数に「null」の値が割り当てられている場合、検出結果は true です注 1: null は大文字と小文字を区別しません: $a = null; $a = NULL には違いはありません注 2: 検出結果は、値が true の場合のみです。変数の「null」が true、0、空文字列、false、空配列はすべて false として検出されます注 3: 変数が初期化されていない場合は、エラーも報告されます
コードの説明:
<?php $a = null; $b = false; if (is_null($a)) echo '$a 为NULL' . ""; if (is_null($b)) echo '$b 为NULL' . ""; if (is_null($c)) echo '$c 为NULL' . ""; // 显示结果为 // $a 为NULL // Undefined variable: c ?>5. $a === null、変数が「null」かどうかを検出し、変数の型も「null」でなければなりません 説明: 変数に値「null」が代入されている場合、変数の型も「null」である必要があります。 同じく「null」の場合、検出結果は true になります。注 1: 判定された場合"null" にすると、is_null と同じ効果になります。注 2: 変数が初期化されていない場合、プログラムもエラーが報告されます。概要:PHP では、「NULL」と「空」は 2 つの概念です。 isset は、主に変数が初期化されているかどうかを判断するために使用されます。empty は、「false」、「empty」、「0」、「NULL」、 TRUEis_null と判定する 値が「NULL」の変数のみ TRUE$a == null と判定する 「false」、「空」、「0」と判定する, "NULL" " 変数はすべて TRUE$a と判断されます === null 値が "NULL" の変数のみが TRUE と判断されるので、変数は実際には "NULL" であり、通常は "false" や "0" などの値による干渉を避けるために is_null を使用します。
以上がPHPで変数が空かどうかを検出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。