ホームページ >バックエンド開発 >PHPチュートリアル >配列要素の存在を検証するには、isset と array_key_exists のどちらの PHP 構造が適していますか?

配列要素の存在を検証するには、isset と array_key_exists のどちらの PHP 構造が適していますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-19 06:22:02551ブラウズ

Which PHP Construct Is Better for Verifying Array Element Existence: isset or array_key_exists?

isset または array_key_exists を使用して配列要素の存在を確認する

配列要素の存在を確認する場合は、isset または array_key_exists のいずれかを利用できます。

isset

このアプローチは関数ではないため、潜在的により効率的です。ただし、要素が存在しても値が NULL の場合は false を返す可能性があります。

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

<code class="php">$a = array(
    123 => 'glop', 
    456 => null, 
);</code>

isset を使用して要素の存在をテストします:

<code class="php">var_dump(isset($a[123])); // true
var_dump(isset($a[456])); // false
var_dump(isset($a[789])); // false</code>

array_key_exists

対照的に、array_key_exists は、その値に関係なく、キーの存在のみを評価します。

同じ配列で array_key_exists を使用する:

<code class="php">var_dump(array_key_exists(123, $a)); // true
var_dump(array_key_exists(456, $a)); // true
var_dump(array_key_exists(789, $a)); // false</code>

正しいアプローチの選択

要素が NULL 以外の値を持つことが保証されているシナリオでは、効率の点で isset の方が望ましい場合があります。それ以外の場合は、array_key_exists の方が適している可能性があります。

特定の例では、isset:

<code class="php">if (!isset(self::$instances[$instanceKey])) {
    $instances[$instanceKey] = $theInstance;
}</code>
を使用してコードを次のように変更できます。

以上が配列要素の存在を検証するには、isset と array_key_exists のどちらの PHP 構造が適していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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