Comment vérifier si un tableau est vide en PHP ? Cinq méthodes que tout développeur doit connaître
\n\nAvez-vous déjà écrit un script PHP qui devait traiter un tableau de données, pour tomber soudainement sur une erreur « Undefined offset » ou « Trying to access array offset on null » ? Une situation familière, n'est-ce pas ? Vérifier si un tableau est vide est l'une de ces opérations de base, mais cruciales, que de nombreux développeurs débutants exécutent incorrectement. Dans cet article, nous allons voir comment vérifier si un tableau est vide en PHP et explorer toutes les nuances : de l'utilisation simple de empty() à la comparaison avec []. Préparez votre éditeur de code préféré — il y aura beaucoup de pratique !
Pourquoi est-ce important ? Une histoire vraie
\n\nImaginez : vous développez une boutique en ligne. Un client ajoute des produits à son panier et passe commande. Votre code doit vérifier si le panier contient des articles avant de débiter le compte. Si vous vérifiez mal si le tableau PHP est vide, vous risquez soit de débiter un panier vide (et de recevoir un appel furieux du client), soit de ne pas traiter la commande du tout. C'est pourquoi la question « How to check whether an array is empty using PHP? » a cumulé des milliers de vues sur Stack Overflow. Penchons-nous une bonne fois pour toutes sur le sujet.
\n\nMéthode 1. La fonction empty() — la plus simple et la plus populaire
\n\nLa fonction empty() en PHP est un couteau suisse pour vérifier les valeurs vides. Elle retourne true si la variable n'existe pas, est égale à false, null, une chaîne vide, 0 ou un tableau vide. Pour vérifier si un tableau est vide, c'est l'option idéale.
<?php\n$emptyArray = [];\n$filledArray = ['pomme', 'banane'];\n\nif (empty($emptyArray)) {\n echo 'Le tableau est vide !'; // Affiche : Le tableau est vide !\n}\n\nif (!empty($filledArray)) {\n echo 'Le tableau contient des éléments : ' . implode(', ', $filledArray);\n // Affiche : Le tableau contient des éléments : pomme, banane\n}\n?>\n\nImportant : empty() ne génère pas d'avertissement si la variable n'est pas définie. C'est sûr et pratique. Cependant, rappelez-vous : si un tableau contient un élément avec la valeur 0 ou une chaîne vide '', empty() ne considère pas cela comme « vide » pour l'ensemble du tableau — elle vérifie le tableau lui-même, pas ses éléments.
Méthode 2. La fonction count() — un comptage précis des éléments
\n\nSi vous avez besoin de connaître le nombre exact d'éléments, utilisez count(). Un tableau est considéré comme vide si count($array) === 0. Cette méthode est particulièrement utile lorsque vous voulez non seulement vérifier si le tableau est vide, mais aussi obtenir sa taille.
<?php\n$users = ['Alice', 'Bob'];\n$emptyUsers = [];\n\nif (count($emptyUsers) === 0) {\n echo 'La liste des utilisateurs est vide.'; // Affiche : La liste des utilisateurs est vide.\n}\n\necho 'Nombre d\'utilisateurs : ' . count($users); // Affiche : 2\n?>\n\nPoint subtil : count() fonctionne même sur une variable inexistante, mais génère un avertissement Warning: count(): Parameter must be an array or an object that implements Countable. Pour éviter cette erreur, combinez-la avec isset() ou is_array().
Méthode 3. Comparaison avec un tableau vide (=== [])
\n\nParfois, la méthode la plus directe est la meilleure. Vous pouvez simplement comparer la variable à un tableau vide en utilisant la comparaison stricte ===. C'est rapide et intuitif.
<?php\n$data = [];\n\nif ($data === []) {\n echo 'Le tableau data est vide.'; // Affiche : Le tableau data est vide.\n}\n\n$config = ['debug' => true];\nif ($config !== []) {\n echo 'La configuration n\'est pas vide.';\n}\n?>\n\nAvantages : Le code se lit comme du français courant. Inconvénients : Si la variable n'est pas définie, vous obtiendrez une erreur fatale Undefined variable. Utilisez donc cette