ホームページ バックエンド開発 PHPチュートリアル PHP の等価比較と empty、isset、isnull

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

Jul 29, 2016 am 08:59 AM
dump false null true var

変数は空です

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

  • "" (空の文字列)
  • 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 チュートリアルに興味のある友人の参考になれば幸いです。 🎜 🎜 🎜
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ダンプファイルとは何ですか? ダンプファイルとは何ですか? Jan 12, 2024 pm 04:58 PM

ダンプ ファイルは通常、ダンプ ファイルまたはコア ダンプ ファイルとも呼ばれるバイナリ ファイルを指します。この種類のファイルは、コンピュータ システムが重大なエラーや異常な状況に遭遇したときに生成され、システムやアプリケーションのステータス、スタック、レジスタ、メモリ イメージ、ログなどの情報を保存するために使用されます。

C言語のnullとNULLの違いは何ですか C言語のnullとNULLの違いは何ですか Sep 22, 2023 am 11:48 AM

null と C 言語の NULL の違いは次のとおりです。 null は C 言語のマクロ定義であり、通常は null ポインタを表すために使用され、ポインタ変数を初期化したり、条件文でポインタが null であるかどうかを判断したりするために使用できます。 NULL は、C 言語のマクロ定義です。 の定義済み定数で、通常は NULL 値を表すために使用され、NULL ポインター、NULL ポインター配列、または NULL 構造体ポインターを表すために使用されます。

未定義と null は何を意味しますか? 未定義と null は何を意味しますか? Nov 20, 2023 pm 02:39 PM

JavaScript では、未定義と null はどちらも「何もない」という概念を表します: 1. 未定義は初期化されていない変数または存在しないプロパティを表します。変数が宣言されていても値が割り当てられていない場合、変数の値は未定義です。オブジェクト内に存在しないプロパティにアクセスする場合、戻り値も未定義になります; 2. null は空のオブジェクト参照を表します。場合によっては、オブジェクト参照を null に設定して、オブジェクト参照が占有しているメモリを解放できます。

var、let、const の違いについて話しましょう (コード例) var、let、const の違いについて話しましょう (コード例) Jan 06, 2023 pm 04:25 PM

この記事では、JavaScript に関する関連知識をお届けします。主に、var、let、const の違い、ECMAScript と JavaScript の関係について紹介します。興味のある方はぜひご覧ください。皆さんのお役に立てれば幸いです。

null と unknown を使用する場合 null と unknown を使用する場合 Nov 13, 2023 pm 02:11 PM

null と unknown はどちらも、値が欠落しているか、未定義の状態であることを示します。使用シナリオに応じて、null または unknown の使用を選択するための指針がいくつかあります。1. 変数が空または無効であることを明確に示す必要がある場合、 null を使用できます; 2. 変数が宣言されていても値が割り当てられていない場合、デフォルトで未定義に設定されます; 3. 変数が空か未定義かを確認する必要がある場合は、厳密な等価演算子 "= を使用します。 == 変数が null か未定義かを判断します。

nullと未定義の違いは何ですか nullと未定義の違いは何ですか Nov 08, 2023 pm 04:43 PM

null と未定義の違いは次のとおりです: 1. 意味上の意味; 2. 使用シナリオ; 3. 他の値との比較; 4. グローバル変数との関係; 5. 関数パラメーターとの関係; 6. Nullability チェック; 7. パフォーマンスに関する考慮事項; 8 . JSON シリアル化のパフォーマンス; 9. 型との関係。詳細な紹介: 1. セマンティックな意味。null は通常、この変数が有効なオブジェクト値を持たないことがわかっていることを意味し、未定義は通常、変数に値が割り当てられていない、またはオブジェクトにこの属性がないことを意味します。 2. 使用シナリオ、など。

Windows 11でオーディオサービスが応答しない問題を修正する18の方法 Windows 11でオーディオサービスが応答しない問題を修正する18の方法 Jun 05, 2023 pm 10:23 PM

オーディオ出力と入力が Windows 11 で期待どおりに動作するには、特定のドライバーとサービスが必要です。これらは場合によってはバックグラウンドでエラーが発生し、オーディオ出力がない、オーディオ デバイスが見つからない、オーディオが歪むなどのオーディオの問題を引き起こすことがあります。 Windows 11 でオーディオ サービスが応答しない問題を修正する方法 以下で説明する修正プログラムから始めて、問題を解決できるまでリストを順に進めていくことをお勧めします。 Windows 11 では、さまざまな理由でオーディオ サービスが応答しなくなる可能性があります。このリストは、Windows 11 でオーディオ サービスの応答を妨げるほとんどの問題を確認し、修正するのに役立ちます。プロセスを進めるには、以下の関連セクションに従ってください。方法 1: オーディオ サービスを再起動します。

Javaでのnullの用途は何ですか Javaでのnullの用途は何ですか Mar 01, 2024 am 10:10 AM

使用法: 1. 参照型変数を null に初期化し、変数が現在どのオブジェクトも指していないことを示します。 2. 参照型変数を null に設定します。これにより、変数によって参照されるオブジェクトのメモリ領域が解放され、このオブジェクトを回収するガベージコレクタ; 3. 参照が空かどうかを null で判定する 参照が null かどうかを判定することで NullPointerException の発生を回避できる 4. 参照が空かどうかの条件判定に null を使用する

See all articles