PHP Vérifier si la clé existe


Exemple

Utilisez array_key_exists() ou isset() ou !empty() isset() !empty() :

$map = [
    'foo' => 1,
    'bar' => null,
    'foobar' => '',
];

array_key_exists('foo', $map); // true
isset($map['foo']); // true
!empty($map['foo']); // true

array_key_exists('bar', $map); // true
isset($map['bar']); // false
!empty($map['bar']); // false

Notez que isset() traite un élément null comme inexistant. Alors que !empty() fait la même chose pour tout élément égal à false (en utilisant une comparaison faible, par exemple, null , '' et 0 sont tous traités comme faux par !empty() ). While isset($map['foobar']); est true !empty($map['foobar']) est false . Cela peut conduire à des erreurs (par exemple, il est facile d'oublier que la chaîne '0' est considérée comme fausse), donc l'utilisation de !empty() est souvent mal vue.

Notez également que isset() et !empty() isset() fonctionneront (et retourneront false) si $map n'est pas défini du tout. Cela les rend quelque peu sujettes aux erreurs d'utilisation:

// Note "long" vs "lang", a tiny typo in the variable name.
$my_array_with_a_long_name = ['foo' => true];
array_key_exists('foo', $my_array_with_a_lang_name); // shows a warning
isset($my_array_with_a_lang_name['foo']); // returns false

Vous pouvez également vérifier les tableaux ordinaux:

$ord = ['a', 'b']; // equivalent to [0 => 'a', 1 => 'b']

array_key_exists(0, $ord); // true
array_key_exists(2, $ord); // false

Notez que isset() a de meilleures performances que array_key_exists() car ce dernier est une fonction et la première une construction de langage.

Vous pouvez également utiliser key_exists() , alias de array_key_exists() .