count

(PHP 4, PHP 5)

count — Compte le nombre d'éléments d'un tableau ou le nombre 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 SPL est disponible, vous pouvez vous utiliser 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écursivité 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 442. 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 443.  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() .