これらの変数判定関数は、実はPHP開発においてよく使われる関数で、一見するとどれも似ているように見えますが、実はまだまだ多くの違いがあります。 , 私自身そのような落とし穴に遭遇したことも含め、潜在的なバグがいくつか残っているかもしれません。たとえば、以前、空を判定に使用する際に問題が発生しました。フロントエンドでは 0 の入力が許可されていますが、空を判定に使用すると、本当ならエラーを直接報告するので、この判断はここでは使えません。
推奨: 「PHP チュートリアル 」
まずこれらの関数の具体的な使用方法を見てみましょう
isset — 検出かどうか変数が設定されており、NULL
empty ではありません - 変数が空かどうかを確認します。次のものが空とみなされます
"" (空の文字列)
0 (整数としての 0)
0.0 (浮動小数点数としての 0)
"0" (文字列としての 0)
NULL
FALSE
array() (空の配列)
$var; (宣言されているが値のない変数)
is_null — 変数を検出します。 NULL
#一isset
変数が最初に定義されているかどうか、配列のキー値が存在するかどうかなどを判断します。<?php $data=[""," ", 0, 0.0 ,"0", null, "null", true, false ,[]]; foreach ($data as $key => $val){ echo $key . '=>' . var_dump(isset($val)) . "\r\n"; } //以上输出只有 null返回false,其它都为真 $arr = ['name' =>'lc', 'age' => 22, 'address' =>null]; echo isset($arr['name']) . "\r\n"; //true echo isset($arr['mobile'])."\r\n"; //false echo isset($arr['address']) ."\r\n"; //false //未定义的键和值为null,返回false
empty
$data=[""," ", 0, 0.0 ,"0", null, "null", true, false ,[]]; foreach ($data as $key => $val){ echo $key . '=>' . var_dump(empty($val)) . "\r\n"; } //以上输出 '" "',"null",true等为false,其它为true is_null $data=[""," ", 0, 0.0 ,"0", null, "null", true, false ,[]]; foreach ($data as $key => $val){ echo $key . '=>' . var_dump(is_null($val)) . "\r\n"; } //以上输出 null 为true,其它全为falseさらに、PHP7 には、?? 構文と ?: 構文がどれであるかを簡単に判断する方法があります。これにもより注意を払う必要があります。
$a ?? 0; //相当于isset($a); $a ?: 0; //相当于!empty($a);上記を通じて例えば、これらの違いがあることを理解しておく必要がありますが、開発時に注意を払えば、適切な判定関数を選択することができます。 #結論
##isset: null 以外の値はすべて true です。
empty: "", 0,0.0,"0 "、null、false、array()、未定義の var はすべて true です。is_null: 値は null であり、true です。!PHP 関連の知識の詳細については、次を参照してください
PHP中国語ウェブサイト
以上がPHP isset()、is_null、empty() の使用法の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。