ホームページ >バックエンド開発 >PHPチュートリアル >配列要素の存在を検証するには、isset と array_key_exists のどちらの PHP 構造が適していますか?
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 サイトの他の関連記事を参照してください。