|
8.3.58 count()
Compte le nombre d'éléments d'un tableau ou le nombre de
propriétés d'un objet
[ Exemples avec count ] PHP 3, PHP 4, PHP 5
int
count (
mixed
var
,
int
mode
)
count
retourne le nombre d'éléments dans
var
, qui est généralement un tableau
et tout le reste, sauf les objets, n'aura qu'un élément.
Pour les objets,
count
retourne le nombre de
propriétés non-statiques, sans tenir compte de la visibilité. Si vous avez
SPL d'installé, vous pouvez vous
accrocher à la fonction
count
en implémentant
l'interface
Countable
. Cette interface a exactement
une méthode,
count
, qui retourne la valeur retournée
par la fonction
count
.
Si le paramètre
var
n'est ni un objet, ni un
tableau,
1
sera retourné. Il y a néanmoins une exception
: si le paramètre
var
vaut
NULL
,
0
sera retourné.
| Note | |
Le paramètre optionnel
mode
est disponible
depuis PHP 4.2.0.
|
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 valeur par défaut
pour
mode
est
0
.
count
ne détecte pas la récursion infinie.
| Attention | |
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.
|
Reportez-vous à la section sur les
Tableaux du manuel, pour plus de
détails sur le fonctionnement des tableaux en PHP.
| 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;
$obj = new StdClass; $obj->foo = 'Une propriété'; $obj->bar = 'Une autre propriété'; $result = count($obj); // $result == 2; ?>
|
| Exemple récursif avec count (PHP >= 4.2.0) |
<?php $food = array( 'fruits' => array('orange', 'banane', 'pommes'), 'legumes' => array('carotte', 'chou','pois'));
// count récursif echo count($food, COUNT_RECURSIVE); // affiche 8
// count normal echo count($food); // affiche 2
?>
|
Voir aussi
is_array
,
isset
et
strlen
.
|