is_array()
La fonction is_array() est une fonction intégrée de PHP qui vérifie si une variable est un tableau ou non.
Qu'est-ce que is_array() ?
is_array() est une fonction intégrée de PHP qui vérifie si une variable donnée est un tableau. Elle retourne true si la variable est un tableau et false pour tout autre type (string, integer, object, null, etc.).
PHP est typé dynamiquement, de sorte qu'une variable peut contenir n'importe quel type de valeur à l'exécution. Avant de parcourir une valeur en boucle, d'y accéder par index ou de la passer à une fonction de tableau comme count() ou array_map(), il est souvent utile de confirmer que vous avez bien un tableau. Appeler une fonction de tableau sur une valeur qui n'est pas un tableau peut déclencher une TypeError (PHP 8+) ou émettre un avertissement, donc une vérification rapide avec is_array() rend votre code plus sûr.
Syntaxe
is_array(mixed $value): boolElle prend un seul paramètre, $value — la variable à tester — et retourne toujours un boolean. Elle ne génère jamais d'erreur par elle-même, il est donc sûr de l'appeler sur n'importe quelle valeur, y compris les résultats non définis renvoyés par des fonctions.
Exemple de base
Ici, $list est un tableau, donc is_array() retourne true ; $text est une string, donc elle retourne false. Nous utilisons var_dump() au lieu de echo car echo true affiche 1 tandis que echo false affiche une chaîne vide — ce qui rend les boolean difficiles à lire. var_dump() affiche le type et la valeur de manière explicite.
Ce qui est considéré comme un tableau
Les tableaux indexés et associatifs retournent tous les deux true, et c'est aussi le cas d'un tableau vide. Tout ce qui ressemble à première vue à une collection — comme un object ou un ArrayObject — ne compte pas comme un tableau natif.
<?php
var_dump(is_array([])); // bool(true) — empty array
var_dump(is_array([1, 2, 3])); // bool(true) — indexed
var_dump(is_array(["name" => "Ann"])); // bool(true) — associative
var_dump(is_array([[1, 2], [3, 4]])); // bool(true) — multidimensional
var_dump(is_array("array")); // bool(false) — string
var_dump(is_array(42)); // bool(false) — integer
var_dump(is_array(null)); // bool(false) — null
var_dump(is_array(new stdClass())); // bool(false) — object
?>Utilisation pratique : protection avant l'itération
Un schéma courant consiste à normaliser une entrée qui peut arriver soit comme une valeur unique soit comme une liste, puis à itérer en toute sécurité :
<?php
function printAll(mixed $input): void
{
// Wrap a single value in an array so the loop always works.
if (!is_array($input)) {
$input = [$input];
}
foreach ($input as $item) {
echo $item, "\n";
}
}
printAll("just one"); // just one
printAll(["a", "b", "c"]); // a / b / c on separate lines
?>Cela évite un avertissement foreach lorsque $input est un scalaire, et simplifie le code appelant.
is_array() vs. vérifications similaires
is_array()vs.gettype():gettype()retourne une string telle que"array";is_array()retourne directement un boolean, ce qui se lit mieux dans unif.is_array()vs.is_iterable(): si vous avez seulement besoin de savoir si vous pouvez parcourir une valeur avecforeach,is_iterable()est plus large — elle accepte à la fois les tableaux et les objetsTraversable(comme les générateurs).is_array()vs.is_countable(): utilisezis_countable()avant d'appelercount()pour accepter également les objects implémentant l'interfaceCountable.- Pour d'autres vérifications scalaires, voir
is_string()etis_int().
Résumé
Utilisez is_array() chaque fois que vous avez besoin d'une vérification rapide et sans erreur qu'une valeur est un vrai tableau PHP — le plus souvent comme protection avant de boucler ou avant d'appeler une fonction spécifique aux tableaux. Si vous devez également accepter des objets itérables, préférez is_iterable() ou is_countable().