ホームページ >バックエンド開発 >PHPの問題 >PHPで変数が空かどうかを検出する方法

PHPで変数が空かどうかを検出する方法

silencement
silencementオリジナル
2019-09-26 09:49:092397ブラウズ

PHPで変数が空かどうかを検出する方法

プログラム開発では、変数が空かどうかを判断する必要があるとき、isset()、empty()、is_null() が常に混乱することがあります。以下にそれらの違いを紹介しましょう

1. isset、変数が初期化されているかどうかを判断します

isset()、変数が設定されているかどうかを判断します、変数が空かどうかは判断しません配列内の要素が定義されているかどうかを判断するために使用できます

コードの説明:

<?php
$a = &#39;&#39;;
$a[&#39;c&#39;] = &#39;&#39;;
if (!isset($a)) echo &#39;$a 未被初始化&#39; . "";
if (!isset($b)) echo &#39;$b 未被初始化&#39; . "";
if (isset($a[&#39;c&#39;])) echo &#39;$a 已经被初始化&#39; . "";
// 显示结果为
// $b 未被初始化
// $a 已经被初始化
?>

2.空、変数が「空」かどうかを検出します

empty(), any 初期化されていない変数、値が 0 または false の変数、または空の文字列 "" または null、空の配列、または属性のないオブジェクトは empty()==true

と判断されます。

注 1: 初期化されていない変数は、empty によって「空」として検出されることもあります

注 2: empty はステートメントではなく変数のみを検出します

コードの説明:

<?php
$a = 0;
$b = &#39;&#39;;
$c = array();
if (empty($a)) echo &#39;$a 为空&#39; . "";
if (empty($b)) echo &#39;$b 为空&#39; . "";
if (empty($c)) echo &#39;$c 为空&#39; . "";
if (empty($d)) echo &#39;$d 为空&#39; . "";
?>

3. $a == null、変数が「空」かどうかを判断します

#注: 値が 0 または false の変数および空の配列、または空の文字列 "" または null は null と判断されます

注: 空との明らかな違いは、変数 $a が初期化されていない場合、$a == null はエラーを報告することです。

コードの説明:

<?php
$a = 0;
$b = array();
if ($a == null) echo &#39;$a 为空&#39; . "";
if ($b == null) echo &#39;$b 为空&#39; . "";
if ($c == null) echo &#39;$b 为空&#39; . "";
// 显示结果为
// $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 &#39;$a 为NULL&#39; . "";
if (is_null($b)) echo &#39;$b 为NULL&#39; . "";
if (is_null($c)) echo &#39;$c 为NULL&#39; . "";
// 显示结果为
// $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」、 TRUE

is_null と判定する 値が「NULL」の変数のみ TRUE

$a == null と判定する 「false」、「空」、「0」と判定する, "NULL" " 変数はすべて TRUE

$a と判断されます === null 値が "NULL" の変数のみが TRUE

と判断されるので、変数は実際には "NULL" であり、通常は "false" や "0" などの値による干渉を避けるために is_null を使用します。

以上がPHPで変数が空かどうかを検出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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