ホームページ >バックエンド開発 >PHPチュートリアル >isset関数とempty関数の違いを明確にするための図
この記事では主に isset 関数と empty 関数の違いを明確にするための図を紹介します。これには一定の参考値があります。今、共有します。必要な友人はそれを参照できます。
あなたが面接中に、面接官がたまたまこの質問をしたとします。次のように答えることができます:
変数値が 0、空の文字列、空の配列などの場合、empty は空であると考えますが、isset は空ではないと考えます。 。
#変数が存在しない場合、isset と empty の両方がその変数を空であるとみなします。
#empty を使用する際の落とし穴を避けるために、 isset 関数を使用することをお勧めします。
両者の詳細な違いを知りたい場合は、読み続けてください...
Note:
- 比較の便宜上、ここでは空の関数を反転しています。
##""、0、"0"、FALSE、array()... この条件は完了していないことに注意してください。テストできます。!empty()
- #混乱していると思われる場合は、このセクションをスキップしてください
##これは、さまざまな変数に対応する isset empty の戻り結果であり、この 2 つの違いはこの図にまとめられています。
緑色の点線ボックス内のisset
のパフォーマンスと、黄色の点線ボックス内の!empty のパフォーマンス。 empty は戻り結果を決定するために isset よりも多くの条件を判断する必要があることがわかります。
何か理解できない場合、または詳細をすべて思い出せない場合。この写真のすべてを思い出す方法を教えてください。
水ボトル: ボトルの中に水がある
- 空気ボトル: 水ボトルは完成しました。中には空気しかありません。
- 真空ボトル: ボトルを取り出して真空にしましたが、中には何もありませんでした。
- テーブルの上にボトルがありません
- 変数を 4 つの状態に対応するミネラルウォーターのボトルに例えます:
一般的な値: ストレージ ユニットには一般的な値が含まれていますisset empty を使用できるとします。この関数は、ミネラルウォーターのボトルが空かどうかを判断する必要があります。結果は次のようになります。空気ボトルの場合、empty は空であると考えます (空に見えます) !)、しかし isset は空ではないと考えます (空気があります!) それが真空ボトルの場合の場合、空の isset は空であると認識します。
- Air 値: 変数は ""、0、"0"、FALSE、array()...
真空値: 変数は NULL です
- 変数が存在しないか、定義されていません
- 小学生空と中学校の生徒 isset
の概念を理解している中学生です。彼はボトルの中にまだ空気が残っていることを知っています。
#バキューム値 (NULL) の場合、空の isset は空であるとみなしますこれで、これら 2 つの関数を使用して変数を判断すると、結果は次のようになることを知ることができます。 air 値 ( " "、0、"0"、FALSE、array()...) の場合、empty は空であると判断し、isset は空ではないと判断します
一般的な値 (これらを除く) の場合2 つのケース、つまりボトルの中に水があります) の場合、空のセットは空ではないと判断します。
これは冒頭で与えられたインタビューの答えです。さて、分かりやすいでしょうか? 詳細な比較
形式: bool isset (mixed var [,mixed var [, ...]])関数: 変数が設定されているか確認します
変数が存在しない場合はFALSEを返します
変数が存在し、その値がNULLの場合も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 つの違いについて尋ねてきたら、すぐにこの写真を捨ててください~
##興味があれば、公式マニュアルに記載されている例を読んでください...PHP マニュアル
これは、Zhang が空の isset if($var) との違いを示します。表から次のことがわかります:
上記がこの記事の全内容です。皆様のお役に立てれば幸いです。学習が役に立ちます。その他の関連コンテンツについては、PHP 中国語 Web サイトに注目してください。 関連する推奨事項: ## PHP は共有メモリプロセス通信関数 (_shm) を実装します
- isset() 戻り値は !is_null() と同等です
- empty() の戻り値は !boolean($x) と同等です。 if($x) は実際に変数をブール型に変換してから条件判定を行います。$var が存在しない場合、if($x) ステートメントは PHP では E_NOTICE レベルの例外を引き起こしますが、これは致命的なエラーではありません。スクリプトは引き続き実行できます。
empty($x) および isset($x) は例外を報告しません
以上がisset関数とempty関数の違いを明確にするための図の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。