(PHP 4, PHP 5, PHP 7, PHP 8)
count — Compte tous les éléments d'un tableau ou dans un objet Countable
Description
count(Countable|array
$value, int
$mode =
COUNT_NORMAL): int
Liste de paramètres
-
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.
Attention
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.
Valeurs de retour
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é.
Historique
Exemples
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)
Voir aussi
- is_array() - Détermine si une variable est un tableau
- isSet() - Détermine si une variable est déclarée et est différente de null
- empty() - Détermine si une variable est vide
- strlen() - Calcule la taille d'une chaîne
- is_countable() - Vérifie si le contenu de la variable est une valeur dénombrable
- Les tableaux