ホームページ >バックエンド開発 >PHPチュートリアル >isset関数とempty関数の違いを明確にするための図

isset関数とempty関数の違いを明確にするための図

不言
不言オリジナル
2018-07-06 15:50:453993ブラウズ

この記事では主に isset 関数と empty 関数の違いを明確にするための図を紹介します。これには一定の参考値があります。今、共有します。必要な友人はそれを参照できます。

について簡単に話しましょうisset 空と空の違いは何ですか?

あなたが面接中に、面接官がたまたまこの質問をしたとします。次のように答えることができます:

  • 変数値が 0、空の文字列、空の配列などの場合、empty は空であると考えますが、isset は空ではないと考えます。 。

  • #変数が存在しない場合、isset と empty の両方がその変数を空であるとみなします。

  • #empty を使用する際の落とし穴を避けるために、 isset 関数を使用することをお勧めします。

両者の詳細な違いを知りたい場合は、読み続けてください...

完全に明確にするための 1 枚の図

ProcessOn を使用して画像を描画しました。

Note:

  • 比較の便宜上、ここでは空の関数を反転しています。

    !empty()

  • ##""、0、"0"、FALSE、array()... この条件は完了していないことに注意してください。テストできます。
  • #混乱していると思われる場合は、このセクションをスキップしてください

isset関数とempty関数の違いを明確にするための図##これは、さまざまな変数に対応する isset empty の戻り結果であり、この 2 つの違いはこの図にまとめられています。

緑色の点線ボックス内の

isset

のパフォーマンスと、黄色の点線ボックス内の

!empty のパフォーマンス。 empty は戻り結果を決定するために isset よりも多くの条件を判断する必要があることがわかります。 何か理解できない場合、または詳細をすべて思い出せない場合。この写真のすべてを思い出す方法を教えてください。

ミネラルウォーターについての考え

テーブルの上にミネラルウォーターのボトルがあると想像してください。ボトルには次の 4 つの状態がある可能性があります:

水ボトル: ボトルの中に水がある
  • 空気ボトル: 水ボトルは完成しました。中には空気しかありません。
  • 真空ボトル: ボトルを取り出して真空にしましたが、中には何もありませんでした。
  • テーブルの上にボトルがありません
  • 変数を 4 つの状態に対応するミネラルウォーターのボトルに例えます:

一般的な値: ストレージ ユニットには一般的な値が含まれています
  • Air 値: 変数は ""、0、"0"、FALSE、array()...
  • 真空値: 変数は NULL です
  • 変数が存在しないか、定義されていません
  • 小学生空と中学校の生徒 isset
isset empty を使用できるとします。この関数は、ミネラルウォーターのボトルが空かどうかを判断する必要があります。結果は次のようになります。空気ボトルの場合、empty は空であると考えます (空に見えます) !)、しかし isset は空ではないと考えます (空気があります!)

それが真空ボトルの場合の場合、空の isset は空であると認識します。
  • 水筒の場合、空の isset は空ではないと認識します。
  • 空き瓶が空っぽに見えると思って科学を理解していない小学生が空瓶であることがわかります。案の定、彼はまだ若すぎます~
  • そして、isset は物理学を勉強しており、
  • 「真空」

    の概念を理解している中学生です。彼はボトルの中にまだ空気が残っていることを知っています。

  • つまり、上記 3 つの状況のうち最初の状況では、ベテラン ドライバー isset は豊富な経験を持っており、小学生の empty とは異なる結論に達しました。

これで、これら 2 つの関数を使用して変数を判断すると、結果は次のようになることを知ることができます。 air 値 ( " "、0、"0"、FALSE、array()...) の場合、empty は空であると判断し、isset は空ではないと判断します

#バキューム値 (NULL) の場合、空の isset は空であるとみなします

  • 一般的な値 (これらを除く) の場合2 つのケース、つまりボトルの中に水があります) の場合、空のセットは空ではないと判断します。

  • これは冒頭で与えられたインタビューの答えです。さて、分かりやすいでしょうか? 詳細な比較

  • isset()関数
  • 形式: bool isset (mixed var [,mixed var [, ...]])関数: 変数が設定されているか確認します

  • 戻り値:

変数が存在しない場合はFALSEを返します

変数が存在し、その値がNULLの場合もFALSEを返します

変数が存在し、その値が NULL でない場合は、TRUE が返されます。

複数の変数を同時にチェックする場合、各項目が前の要件を満たしている場合にのみ TRUE が返されます。それ以外の場合、結果は次のようになります。 FALSE

詳細な説明:

unset() を使用する 変数を解放すると、isset() ではなくなります。

PHP 関数 isset()

は変数

にのみ使用でき、他のパラメータを渡すと解析エラーが発生します。

定数が設定されているかどうかを検出するには、define() 関数を使用します。

empty() 関数

形式: bool empty (混合変数)

関数: 変数が空かどうかを確認します

戻り値:

変数が存在しない場合は TRUE を返します
変数が存在し、その値が "" の場合は 0 、"0 "、NULL、FALSE、array()、var $var、および属性のないオブジェクトは、TURE
を返します。変数が存在し、値が ""、0、"0"、NULL、FALSE、array でない場合は、 ()、var $var および属性のないオブジェクトは FALSE を返します

詳細説明:
empty() 戻り値 =! (ブール値) var ですが、変数が未定義であるため、警告メッセージは生成されません。詳細については、「ブール値への変換」を参照してください。
empty() は変数 にのみ使用できます。他のパラメータを渡すと Paser エラーが発生し、操作が終了します。
定数が設定されているかどうかを検出するには、define() 関数を使用します。

最も完全な差分

ミネラルウォーターと変数を組み合わせて、最も完全な差分図を描きます:

前の内容を理解できれば、完全に理解できるでしょう。この2枚の写真と、isset emptyの違いは、あなたの心に刻まれるでしょう。それでも誰かが 2 つの違いについて尋ねてきたら、すぐにこの写真を捨ててください~

isset関数とempty関数の違いを明確にするための図

isset関数とempty関数の違いを明確にするための図

##興味があれば、公式マニュアルに記載されている例を読んでください...

PHP マニュアル

isset関数とempty関数の違いを明確にするための図

これは、Zhang が空の isset if($var) との違いを示します。表から次のことがわかります:

  • isset() 戻り値は !is_null() と同等です

  • empty() の戻り値は !boolean($x) と同等です。 if($x) は実際に変数をブール型に変換してから条件判定を行います。

    $var が存在しない場合、if($x) ステートメントは PHP では E_NOTICE レベルの例外を引き起こしますが、これは致命的なエラーではありません。スクリプトは引き続き実行できます。
    empty($x) および isset($x) は例外を報告しません

上記がこの記事の全内容です。皆様のお役に立てれば幸いです。学習が役に立ちます。その他の関連コンテンツについては、PHP 中国語 Web サイトに注目してください。

関連する推奨事項:

## PHP は共有メモリプロセス通信関数 (_shm) を実装します

以上がisset関数とempty関数の違いを明確にするための図の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。