ホームページ >バックエンド開発 >PHPの問題 >変数が空かどうかを検出するphpのメソッドは何ですか?

変数が空かどうかを検出するphpのメソッドは何ですか?

王林
王林転載
2021-02-11 10:15:243288ブラウズ

変数が空かどうかを検出するphpのメソッドは何ですか?

PHP には変数が空かどうかを検出するメソッドとして次の 5 つがありますが、これら 5 つのメソッドの違いは何でしょうか?以下、一緒に見ていきましょう。

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

注: 変数が空かどうかは判断しませんが、配列内の要素が初期化されているかどうかを判断するために使用できます。定義されています。

注: isset を使用して配列要素が初期化されているかどうかを判断する場合、その効率は array_key_exists よりも約 4 倍高くなります。

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

2. empty() 関数: 変数が「空」かどうかを検出します

説明: 初期化されていない変数、値は 0 または false、または空の文字列 "" または null 変数、空の配列、プロパティのないオブジェクト、empty(variable) == true。

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

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

<?php
$a = 0;
$b = &#39;&#39;;
$c = array();
if (empty($a)) echo &#39;$a 为空&#39; . "<br/>";
if (empty($b)) echo &#39;$b 为空&#39; . "<br/>";
if (empty($c)) echo &#39;$c 为空&#39; . "<br/>";
if (empty($d)) echo &#39;$d 为空&#39; . "<br/>";
//结果
// $a 为空
// $b 为空
// $c 为空
// $d 为空
var_dump(empty(null));
var_dump(empty(0));
var_dump(empty(&#39;&#39;));
var_dump(empty([]));
//结果
// bool(true)
// bool(true)
// bool(true)
// bool(true)

3. var == null 機能: 変数が「空」かどうかを判断します

説明: 値は 0 または false、または空の文字列 "" または null 変数です。 empty 配列および配列はすべて null と判断されます。

(学習ビデオ共有: php ビデオ チュートリアル)

注: 空との大きな違いは、変数が初期化されていない場合、var == 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;$c 为空&#39; . "";

// 显示结果为
// $a 为空
// $b 为空
// Undefined variable: c

4. is_null 関数: 変数が "null" かどうかを検出します

説明: 変数に "null" の値が割り当てられている場合、検出結果は true になります。

注 1: null は大文字と小文字を区別しません。a=null;a=null;a = NULL は区別しません。

注2: 検出結果がtrueとなるのは変数の値がnullの場合のみで、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. var === 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 として評価します。
var == null 値が「false」、「empty」、「0」、「NULL」の変数をTRUEと判定します。
var === null 値が「NULL」の変数のみがTRUEと判断されます。

注: 変数が本当に "NULL" であるかどうかを判断する場合、is_null は主に "false"、"0"、およびその他の値による干渉を避けるために使用されます。

関連する推奨事項:

php チュートリアル

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

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。