(PHP 4, PHP 5, PHP 7)
count — Compte tous les éléments d'un tableau ou quelque chose d'un objet
Compte tous les éléments d'un tableau ou quelque chose d'un objet.
Pour les objets, count() retourne le nombre de propriétés non-statiques, sans tenir compte de la visibilité. Si SPL est disponible, vous pouvez utiliser la fonction count() en implémentant l'interface Countable. Cette interface a exactement une méthode, Countable::count(), qui retourne la valeur retournée par la fonction count().
Reportez-vous à la section sur les Tableaux du manuel, pour plus de détails sur le fonctionnement des tableaux en PHP.
array_or_countable
Un tableau ou un objet Countable.
mode
Si le paramètre optionnel mode
vaut
COUNT_RECURSIVE
(ou 1), count()
va compter récursivement les tableaux. C'est particulièrement pratique
pour compter le nombre d'éléments d'un tableau.
La fonction count() peut détecter les récursions
afin d'éviter les boucles infinies, mais émettra une alerte de type
E_WARNING
à chaque fois qu'une boucle infinie surviendra
(dans le cas où un tableau contient lui-même plus d'une boucle infinie)
et retournera un compteur plus grand que l'attendu.
Retourne le nombre d'éléments dans array_or_countable
.
Si le paramètre n'est ni un objet, ni un
tableau, 1 sera retourné. Il y a néanmoins une exception
: si le paramètre array_or_countable
vaut NULL
,
0 sera retourné.
count() peut retourner 0 pour une variable qui n'a pas été affectée, ou pour un tableau vide. Utilisez plutôt isset() pour tester si la variable existe.
Exemple #1 Exemple avec count()
<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
$result = count($a);
// $result == 3
$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
$result = count($b);
// $result == 3
$result = count(null);
// $result == 0
$result = count(false);
// $result == 1
?>
Exemple #2 Exemple de récursivité avec count()
<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard', 'pea'));
// count récursif
echo count($food, COUNT_RECURSIVE); // affiche 8
// count normal
echo count($food); // affiche 2
?>