ホームページ >バックエンド開発 >PHPチュートリアル >PHP の等価比較と empty、isset、isnull
変数は空です
以下は空とみなされます:
- "" (空の文字列)
- 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>
==
比较, 除了 “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
<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>
<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>
=== 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>
最佳实践
==
和 ===
===
と、より厳密な値と型の比較も含まれます
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 チュートリアルに興味のある友人の参考になれば幸いです。 🎜
🎜
🎜