ホームページ  >  記事  >  バックエンド開発  >  PHP で変数の存在を確実にテストするにはどうすればよいですか?

PHP で変数の存在を確実にテストするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-01 14:03:45585ブラウズ

How to Reliably Test for Variable Existence in PHP?

PHP での変数の存在テスト方法の探索

PHP には、変数の存在を判断する isset() 関数が用意されています。ただし、ドキュメントで説明されているように、未設定の変数と NULL に設定された変数を区別できません。

制限のある代替アプローチ

この制限を克服する 1 つの試みは、次のとおりです。 :

<code class="php">if (isset($v) || @is_null($v)) {...}</code>

しかし、is_null() も同様の問題に直面しており、未設定の場合は TRUE を返します。変数。さらに、@($v === NULL) は @is_null($v) と同じように動作するため、使用できなくなります。

信頼できる解決策: array_key_exists()

変数の存在を確認する信頼性の高い方法として、array_key_exists() を検討してください。グローバル変数に適用すると、存在しない変数と NULL に設定された変数が効果的に区別されます。

区別のデモ

次の例を考えてみましょう:

<code class="php">$a = NULL;
var_dump(array_key_exists('a', $GLOBALS)); // TRUE
var_dump(array_key_exists('b', $GLOBALS)); // FALSE</code>

出力は、array_key_exists() が次の存在を正確に識別していることを示しています。 NULL に設定されていても $a です。

結論

isset() と is_null() は変数の存在テストの部分的なサポートを提供しますが、array_key_exists() はさらに多くの機能を提供します。正確かつ包括的なソリューション。このメソッドは、グローバル スコープとローカル スコープの両方で、未設定の変数と NULL に設定された変数を正しく区別します。

以上がPHP で変数の存在を確実にテストするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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