Heim  >  Artikel  >  Backend-Entwicklung  >  Welches PHP-Konstrukt eignet sich besser zum Überprüfen der Existenz von Array-Elementen: isset oder array_key_exists?

Welches PHP-Konstrukt eignet sich besser zum Überprüfen der Existenz von Array-Elementen: isset oder array_key_exists?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-19 06:22:02446Durchsuche

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

Verwenden von isset oder array_key_exists, um das Vorhandensein eines Array-Elements zu überprüfen

Wenn Sie das Vorhandensein eines Array-Elements feststellen möchten, können Sie entweder isset verwenden Sprachkonstrukt oder die Funktion array_key_exists.

isset

Dieser Ansatz ist möglicherweise effizienter, da es sich nicht um eine Funktion handelt. Es kann jedoch false zurückgeben, wenn das Element existiert, aber den Wert NULL hat.

Betrachten Sie das folgende Array:

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

Verwenden von isset, um auf Elementexistenz zu testen:

<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

Im Gegensatz dazu bewertet array_key_exists ausschließlich das Vorhandensein des Schlüssels, unabhängig von seinem Wert.

Verwendung von array_key_exists mit demselben Array:

<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>

Den richtigen Ansatz wählen

Für Szenarien, in denen das Element garantiert einen Wert ungleich NULL hat, kann isset aufgrund seiner Effizienz vorzuziehen sein. Andernfalls ist array_key_exists möglicherweise besser geeignet.

In Ihrem speziellen Beispiel können Sie Ihren Code wie folgt mit isset:

<code class="php">if (!isset(self::$instances[$instanceKey])) {
    $instances[$instanceKey] = $theInstance;
}</code>
ändern

Das obige ist der detaillierte Inhalt vonWelches PHP-Konstrukt eignet sich besser zum Überprüfen der Existenz von Array-Elementen: isset oder array_key_exists?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn