count

(PHP 3, PHP 4 , PHP 5)

count -- Compte le nombre d'éléments d'un tableau ou le nombres de propriétés d'un objet

Description

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 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;

$obj = new StdClass;
$obj->foo = 'Une propriété';
$obj->bar = 'Une autre propriété';
$result = count($obj);
// $result == 2;
?>

Exemple 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().