まずはemptyとissetを見直してみましょう
empty — 変数が空かどうかを確認します
""、0、"0"、NULL、FALSE、array()、var $var; および属性のないオブジェクトは、var が空の場合、TRUE が返されます。
isset — 変数が設定されているかどうかを確認します
変数が設定されているか、NULL ではないかを確認してください。 つまり、変数が設定されていない場合は false を返し、変数が NULL の場合は false を返します
PHPマニュアルにはわかりやすく説明されていますが、変数が設定されていない場合、emptyはどのような結果を返しますか?
[php]
var_dump(空($未定義));
var_dump(empty($unknown));結果は次のようになります: bool(true)
empty は、変数が設定されているかどうかを検出する目的にも役立つことがわかります。それでは、issetの代わりにemptyを使用する必要がありますか?
変数が存在するかどうかを判断するだけであれば、 isset を使用するべきだと思います。 isset の意味は非常に明確で、これに使用され、コードを読みやすくするためです。
変数の存在を確認し、その変数が 0、''、空の配列などではないことも確認する必要がある場合、
を使用できます。
[php]
if(isset($var) && !empty($var)) の代わりに if(!empty($var))
if(isset($var) && !empty($var)) の代わりに if(!empty($var)) 変数が NULL かどうかを確認したい場合は、isset を使用してはなりません。
以下にいくつかのコンテンツを紹介しましょう:
issetとemptyのパフォーマンス?
実際、isset と empty のパフォーマンスは非常に優れており、大きな違いはありません。もう 1 つ言及すべき点は、これらはすべて関数ではなくステートメントであるということです。この点について詳しく知りたい場合は、Niao
の記事「isset と is_null の違い」を読むことができます。
このステートメントは変数関数によって呼び出すことはできません。また、関数の戻り値を isset および empty のパラメーターとして受け入れることはできません
。
[php]
空(intval('3'));
//致命的なエラー: 書き込みコンテキストで関数の戻り値を使用できません
空(intval('3'));
//致命的なエラー: 書き込みコンテキストで関数の戻り値を使用できません
ただし、最新の PHP5.5 リリースでは、この機能、つまり空で任意の式を使用する機能がサポートされています。
[php]
関数 always_false() {
false を返します
}
if (empty(always_false())) {
echo "これは印刷されます。n";
}
関数 always_false() {
false を返す;
}
if (empty(always_false())) {
echo "これは印刷されます。n";
}
は次のように出力されます:
これは印刷されます。
http://www.bkjia.com/PHPjc/477203.html
www.bkjia.com
truehttp://www.bkjia.com/PHPjc/477203.html技術記事まず、empty と isset empty を確認してください。変数が空かどうか、0、0、NULL、FALSE、array()、var $var; など、属性のないオブジェクトは空とみなされます。