PHP の等価比較と empty、isset、isnull

WBOY
リリース: 2016-07-29 08:59:03
オリジナル
1305 人が閲覧しました

変数は空です

以下は空とみなされます:

  • "" (空の文字列)
  • 0 (整数としての0)
  • 0.0 (浮動小数点数としての0)
  • "0 ” (0文字列として)
  • NULL
  • FALSE
  • array() (空の配列)
  • $var; (宣言されているが値のない変数)

判定ステートメント内の null 値は false を返します。 if ステートメントの判定がすべて false であるため、コードは出力を生成しません:

<code><span>$emptyList</span> = [<span>""</span>,  <span>0</span>, <span>0.0</span>, <span>"0"</span>, <span>NULL</span>, <span>FALSE</span>, <span>array</span>(), <span>$var</span>, ];
<span>foreach</span>(<span>$emptyList</span><span>as</span><span>$val</span>) {
    <span>if</span> (<span>$val</span>) {
        var_dump(<span>$val</span>);
    }
}</code>
ログイン後にコピー

比較演算子: == および ========

  • ==只涉及到值的比较
<code>var_dump(<span>0</span> == <span>'0.0'</span>); <span>//</span><span>true</span>
var_dump(<span>0</span> == <span>''</span>); <span>//</span><span>true</span>
var_dump(<span>0</span> == <span>false</span>); <span>//</span><span>true</span></code>
ログイン後にコピー
  • === 同时涉及 值 与类型的比较, 更为严格
<code>var_dump(<span>0</span> === <span>'0.0'</span>); <span>//</span><span>false</span>
var_dump(<span>0</span> === <span>''</span>); <span>//</span><span>false</span>
var_dump(<span>0</span> === <span>false</span>); <span>//</span><span>false</span></code>
ログイン後にコピー
  • null 与 空值 通过== 比较, 除了 “0” ,都返回true:
<code><span><span><?php</span><span>$emptyList</span> = [<span>""</span>,  <span>0</span>, <span>0.0</span>, <span>"0"</span>, <span>NULL</span>, <span>FALSE</span>, <span>array</span>(), <span>$var</span>, ];
<span>foreach</span>(<span>$emptyList</span><span>as</span><span>$val</span>) {
    var_dump(<span>$val</span> == <span>null</span>);
}</span></code>
ログイン後にコピー

empty, isset, isnull

  • empty:检查一个变量是否为空
<code><?php
<span>$emptyList</span> = [<span>""</span>,  <span>0</span>, <span>0.0</span>, <span>"0"</span>, NULL, FALSE, array(), <span>$var</span>, ];
foreach (<span>$emptyList</span> as <span>$e</span>) {
    var_dump(empty(<span>$e</span>));
}
/*
bool(<span>true</span>)
bool(<span>true</span>)
bool(<span>true</span>)
bool(<span>true</span>)
bool(<span>true</span>)
bool(<span>true</span>)
bool(<span>true</span>)
bool(<span>true</span>)
*/</code>
ログイン後にコピー
  • isset:判断变量var 存在并且值不是 NULL 则返回 TRUE,否则返回 FALSE。
<code><span>$var</span> = <span>1</span>;
var_dump(<span>isset</span>(<span>$var</span>)); <span>// true</span><span>unset</span>(<span>$var</span>);
var_dump(<span>isset</span>(<span>$var</span>)); <span>// false</span><span>$var</span> = <span>null</span>;
var_dump(<span>isset</span>(<span>$var</span>)); <span>// false</span></code>
ログイン後にコピー
  • isnull: 判断变量是否 为 null , 等价于 === null

注意

空值之间的==比较不一定返回 true :

<code><span>// 不具传递性</span><span>var_dump(<span>0</span> == <span>'0'</span>)</span>; <span>// true</span><span>var_dump(<span>''</span> == <span>0</span> )</span>; <span>// true</span><span>var_dump(<span>'0'</span> == <span>''</span>)</span>; <span>// false</span><span>var_dump(<span>0</span> == [])</span>; <span>// false</span></code>
ログイン後にコピー

最佳实践

  • 空值判断使用 empty 判断;
  • isset 无法判断存在但值为null的变量;
  • php =====
= = には値の比較のみが含まれますrrreee

=== と、より厳密な値と型の比較も含まれます

rrreee

🎜null と null == 比較、「0」以外はすべて true を返します: 🎜🎜rrreee🎜empty、isset、isnull🎜🎜🎜empty: 変数が空かどうかを確認します🎜🎜rrreee🎜🎜isset: 決定します変数 var 存在し、値が NULL でない場合は TRUE を返し、それ以外の場合は FALSE を返します。 🎜🎜rrreee🎜🎜isnull: 変数が null (=== null と同等) かどうかを判断します。 🎜🎜🎜注意🎜🎜 null 値間の == 比較は必ずしも true を返すわけではありません: 🎜rrreee🎜ベストプラクティス🎜🎜🎜 null 値を判断するには empty を使用してください 🎜🎜isset は存在​​を判断できませんが、 value null である変数 🎜🎜php ===== の違いは、後者は型の同一性判定を同時に実行することです🎜🎜🎜')。 addClass('事前番号付け' ).hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i 🎜').text(i)); }; $numbering.fadeIn(1700); }); }); 🎜 🎜 上記は、PHP の等値比較と empty、isset、isnull の内容を含めて紹介しています。PHP チュートリアルに興味のある友人の参考になれば幸いです。 🎜 🎜 🎜
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート