Position actuelle: Accueil> Derniers articles> Comment éviter les erreurs causées par le tableau non défini lors de l'utilisation de la fonction Key_exists? Conseils de prévention des erreurs PHP

Comment éviter les erreurs causées par le tableau non défini lors de l'utilisation de la fonction Key_exists? Conseils de prévention des erreurs PHP

gitbox 2025-08-28

Dans le développement de PHP, il est souvent nécessaire de déterminer s'il existe une clé lors du traitement d'un tableau. La fonction key_exists () est généralement la première fonction de choix que nous utilisons pour accomplir ce travail. Son objectif est de vérifier si la clé spécifiée existe dans le tableau. Cependant, lorsque vous utilisez Key_exists () , cela peut entraîner des erreurs ou des avertissements inutiles si vous gérez accidentellement le tableau non défini. Par conséquent, il est important de comprendre comment éviter les erreurs non définies du tableau lors de l'utilisation de key_exists () .

1. Key_exists () Fonction Basics

key_exists () est une fonction qui vérifie si une valeur de clé spécifique existe dans un tableau. Sa syntaxe de base est la suivante:

 <span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">key_exists</span></span><span> ( </span><span><span class="hljs-keyword">mixed</span></span><span> </span><span><span class="hljs-variable">$key</span></span><span> , </span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$array</span></span><span> )
</span></span>
  • $ clé : le nom de la clé du tableau à vérifier.

  • $ Array : Target Array.

Cette fonction renverra une valeur booléenne, True signifie que la clé existe, et FAUX signifie que la clé n'existe pas.

2. Scénarios courants qui soulèvent des erreurs

Dans le développement réel, vous pouvez parfois rencontrer des situations où le tableau n'est pas initialisé correctement ou n'existe pas du tout. À l'heure actuelle, appeler Key_exists () déclenchera directement un avertissement. Par exemple:

 <span><span><span class="hljs-variable">$key</span></span><span> = </span><span><span class="hljs-string">'name'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">key_exists</span></span><span>(</span><span><span class="hljs-variable">$key</span></span><span>, </span><span><span class="hljs-variable">$user</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Key exists!"</span></span><span>;
}
</span></span>

Si le tableau d'utilisateurs $ n'est pas défini ou initialisé, PHP lancera une erreur comme "variable non définie" ou "essayant d'accéder à l'index non défini du tableau".

3. Comment éviter les erreurs causées par des tableaux non définis

Pour éviter les problèmes ci-dessus, nous devons nous assurer que le tableau a été correctement initialisé avant d'utiliser key_exists () . Il existe plusieurs façons d'éviter les erreurs:

3.1 Vérifiez si le tableau est défini

Avant d'appeler key_exists () , vous pouvez d'abord utiliser les fonctions isset () ou vide () pour vérifier si le tableau est défini:

 <span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$user</span></span><span>) &amp;&amp; </span><span><span class="hljs-title function_ invoke__">key_exists</span></span><span>(</span><span><span class="hljs-variable">$key</span></span><span>, </span><span><span class="hljs-variable">$user</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Key exists!"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Array is not defined or key doesn't exist."</span></span><span>;
}
</span></span>

isset () vérifie si la variable a été initialisée et n'est pas nul . Si le tableau n'est pas défini ou vide, Isset () reviendra faux , évitant ainsi l'accès aux tableaux non définis.

3.2 Utilisez array_key_exists () au lieu de key_exists ()

Il existe une autre fonction très similaire dans PHP appelé array_key_exists () , qui fonctionne exactement de la même manière que key_exists () , mais il est généralement recommandé d'utiliser array_key_exists () car il est plus compatible dans les versions anciennes de PHP et est une fonction standard recommandée dans la documentation officielle.

 <span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$user</span></span><span>) &amp;&amp; </span><span><span class="hljs-title function_ invoke__">array_key_exists</span></span><span>(</span><span><span class="hljs-variable">$key</span></span><span>, </span><span><span class="hljs-variable">$user</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Key exists!"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Array is not defined or key doesn't exist."</span></span><span>;
}
</span></span>

3.3 Utilisation sûre des valeurs par défaut

En PHP, nous pouvons utiliser le ?? Opérateur (Null Merge Operator) pour fournir des valeurs par défaut pour les éléments de tableau non définis. Cela évite les erreurs lorsqu'elles sont non définies:

 <span><span><span class="hljs-variable">$userName</span></span><span> = </span><span><span class="hljs-variable">$user</span></span><span>[</span><span><span class="hljs-variable">$key</span></span><span>] ?? </span><span><span class="hljs-string">'valeur par défaut'</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$userName</span></span><span>;
</span></span>

Le but de cet opérateur est de renvoyer la valeur si $ user [$ key] est défini et non nul ; Sinon, renvoyez la «valeur par défaut» .

3.4 Initialiser le tableau

Le moyen le plus simple consiste à s'assurer d'initialiser avant d'utiliser le tableau. Vous pouvez définir un tableau vide pour le tableau afin d'éviter de manquer accidentellement l'opération d'initialisation du tableau:

 <span><span><span class="hljs-variable">$user</span></span><span> = </span><span><span class="hljs-variable">$user</span></span><span> ?? [];  </span><span><span class="hljs-comment">// si$userAucune définition,Initialiser à un tableau vide</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">key_exists</span></span><span>(</span><span><span class="hljs-variable">$key</span></span><span>, </span><span><span class="hljs-variable">$user</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Key exists!"</span></span><span>;
}
</span></span>

3.5 combinant array_key_exists () avec vide ()

Dans certains cas, vide () peut être utilisé pour s'assurer que les éléments de tableau ou de tableau ne sont pas vides. Vous pouvez combiner la fonction vide () pour éviter davantage les erreurs inutiles:

 <span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-keyword">empty</span></span><span>(</span><span><span class="hljs-variable">$user</span></span><span>) &amp;&amp; </span><span><span class="hljs-title function_ invoke__">array_key_exists</span></span><span>(</span><span><span class="hljs-variable">$key</span></span><span>, </span><span><span class="hljs-variable">$user</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Key exists and value is not empty!"</span></span><span>;
}
</span></span>

Cette méthode évite non seulement les tableaux non définis, mais garantit également que les valeurs du tableau ne sont pas vides.

4. Résumé

Lorsque vous utilisez KEY_EXISTS () , afin d'éviter les erreurs causées par des tableaux non définis, la clé consiste à s'assurer que le tableau a été correctement initialisé avant d'utiliser le tableau, ou pour s'assurer que le tableau existe par jugement conditionnel. Grâce aux techniques de prévention des erreurs ci-dessus, vous pouvez éviter efficacement les erreurs causées par des tableaux non définis et améliorer la robustesse et la maintenabilité de votre code.