(PHP 4, PHP 5, PHP 7, PHP 8)
count — Compte tous les éléments d'un tableau ou dans un objet Countable
Compte tous les éléments dans un tableau quand utilisé avec un tableau. Quand utilisé avec un objet qui implémente l'interface Countable, ceci retourne la valeur de la méthode Countable::count().
value
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 value
.
Antérieur à PHP 8.0.0, si le paramètre n'est ni un tableau, ni un objet
qui implémente l'interface Countable,
1
était retourné, sauf si value
était null
, au quel cas 0
était retourné.
Version | Description |
---|---|
8.0.0 |
count() lance désormais une TypeError
pour des types dénombrables invalides passés au paramètre
value .
|
7.2.0 |
count() génère désormais un avertissement pour
des types dénombrables invalides passés au paramètre
value .
|
Exemple #1 Exemple avec count()
<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
var_dump(count($a));
$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
var_dump(count($b));
?>
L'exemple ci-dessus va afficher :
int(3) int(3)
Exemple #2 Exemple de count() avec un argument non Countable|array (contre-exemple - ne pas faire ceci)
<?php
$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
var_dump(count($b));
var_dump(count(null));
var_dump(count(false));
?>
L'exemple ci-dessus va afficher :
int(3) int(0) int(1)
Résultat de l'exemple ci-dessus en PHP 7.2:
int(3) Warning: count(): Parameter must be an array or an object that implements Countable in … on line 12 int(0) Warning: count(): Parameter must be an array or an object that implements Countable in … on line 14 int(1)
Résultat de l'exemple ci-dessus en PHP 8 :
int(3) Fatal error: Uncaught TypeError: count(): Argument #1 ($var) must be of type Countable .. on line 12
Exemple #3 Exemple de récursivité avec count()
<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard', 'pea'));
// count récursif
var_dump(count($food, COUNT_RECURSIVE));
// count normal
var_dump(count($food));
?>
L'exemple ci-dessus va afficher :
int(8) int(2)
Exemple #4 Objet Countable
<?php
class CountOfMethods implements Countable
{
private function someMethod()
{
}
public function count(): int
{
return count(get_class_methods($this));
}
}
$obj = new CountOfMethods();
var_dump(count($obj));
?>
L'exemple ci-dessus va afficher :
int(2)