ホームページ  >  記事  >  バックエンド開発  >  PHP isset()、is_null、empty() の使用法の概要

PHP isset()、is_null、empty() の使用法の概要

angryTom
angryTom転載
2019-12-27 17:46:283754ブラウズ

PHP isset()、is_null、empty() の使用法の概要

これらの変数判定関数は、実は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 . &#39;=>&#39; . var_dump(isset($val)) . "\r\n";
}
//以上输出只有 null返回false,其它都为真
$arr = [&#39;name&#39; =>&#39;lc&#39;, &#39;age&#39; => 22, &#39;address&#39; =>null];
echo isset($arr[&#39;name&#39;]) . "\r\n";  //true
echo isset($arr[&#39;mobile&#39;])."\r\n";  //false
echo isset($arr[&#39;address&#39;]) ."\r\n"; //false
//未定义的键和值为null,返回false

empty

$data=[""," ", 0, 0.0 ,"0", null, "null", true, false ,[]];
foreach ($data as $key => $val){
    echo $key . &#39;=>&#39; . var_dump(empty($val)) . "\r\n";
}
//以上输出 &#39;" "&#39;,"null",true等为false,其它为true
is_null
$data=[""," ", 0, 0.0 ,"0", null, "null", true, false ,[]];
foreach ($data as $key => $val){
    echo $key . &#39;=>&#39; . 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 サイトの他の関連記事を参照してください。

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