Forum und email

count

(PHP 4, PHP 5)

count — Megszámolja egy tömb elemeit, vagy egy objektum tulajdonságelemeit

Leírás

int count ( mixed $var [, int $mode ] )

Visszaadja a var változó elemeinek számát, amely általában array(tömb) típusú, mivel az objektumokon kívül bármi másnak csak egy eleme lehet.

Obkektumok vizsgálata esetén, ha az SPL kiterjesztés telepítve van, lehetővé válik a count() működésének befolyásolása. Ezt a Countable interfész egyetlen, count() nevű eljárásának megadásával tudjuk megtenni. Ekkor ennek a függvénynek az eredménye lesz a count() visszaadott értéke.

Ha a var paraméter nem tömb vagy egy Countable interfésszel ellátott objektum, akkor 1-et ad vissza. Egyetlen kivétel a count(null), ez esetben 0 lesz a visszatérési érték.

Note: A mode paraméter a PHP 4.2.0 változatától kezdve használható.

Ha a nem kötelezően megadandó mode paraméternek COUNT_RECURSIVE értéket (vagy 1-et) adunk meg, a függvény rekurzívan fogja megszámolni a tömbelemeket. Ilyen rekurzív megszámlálásnak például többdimenziós tömbök esetén van haszna. A mode paraméter alapértelmezett értéke 0. A count() nem észleli az esetleges végtelen ciklusokat kiváltó helyzeteket.

Caution

A count() 0-val térhet vissza definiálatlan változók esetén és üres tömbök esetén is. Az isset() segítségével lehet megvizsgálni, hogy a változó be van-e állítva.

Olvasd át a kézikönyv Tömbök c. fejezetét a PHP-ban megvalósított tömbök részletes magyarazátáért.

Example#1 count() példa

<?php
$a
[0] = 1;
$a[1] = 3;
$a[2] = 5;
$eredmeny count($a);
// $eredmeny == 3

$b[0]  = 7;
$b[5]  = 9;
$b[10] = 11;
$eredmeny count($b);
// $eredmeny == 3

$eredmeny count(null);
// $eredmeny == 0

$eredmeny count(false);
// $eredmeny == 1
?>

Example#2 Példa a count() rekurzív használatára ((PHP >= 4.2.0))

<?php
$etelek 
= array( 'gyümölcsök' => array('szilva''barack''alma'),
                 
'zöldségek'  => array('répa''karfiol''retek'));

// Összeszámolás rekurzív módon
echo count($etelekCOUNT_RECURSIVE); // 8

// Összeszámolás hagyományosan
echo count($etelek); // 2

?>

Lásd még: is_array(), isset() és strlen().