Utilisation d'isset ou array_key_exists pour vérifier l'existence d'un élément de tableau
Lorsque vous cherchez à vérifier la présence d'un élément de tableau, vous pouvez utiliser soit l'isset construction de langage ou la fonction array_key_exists.
isset
Cette approche est potentiellement plus efficace car ce n'est pas une fonction. Cependant, il peut renvoyer false si l'élément existe mais a une valeur NULL.
Considérez le tableau suivant :
<code class="php">$a = array( 123 => 'glop', 456 => null, );</code>
Utiliser isset pour tester l'existence d'un élément :
<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
En revanche, array_key_exists évalue uniquement la présence de la clé, quelle que soit sa valeur.
Utiliser array_key_exists avec le même tableau :
<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>
Choisir la bonne approche
Pour les scénarios où l'élément est garanti d'avoir une valeur non NULL, isset peut être préférable en raison de son efficacité. Sinon, array_key_exists peut être plus approprié.
Dans votre exemple spécifique, vous pouvez modifier votre code comme suit en utilisant isset :
<code class="php">if (!isset(self::$instances[$instanceKey])) { $instances[$instanceKey] = $theInstance; }</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!