(PHP 4, PHP 5, PHP 7)
count — 変数に含まれるすべての要素、 あるいはオブジェクトに含まれる何かの数を数える
変数に含まれるすべての要素、 あるいはオブジェクトに含まれる何かの数を数えます。
オブジェクトに対して、もし SPL がインストールされている場合、インターフェイス Countable を実装することで count() にフックすることができます。このインターフェイスには 1 つのメソッド Countable::count() があり、count() 関数に対する値を返します。
配列の実装やPHPでの使用法に関する詳細な説明については、マニュアルの 配列のセクションを参照ください。
array_or_countable
配列あるいは Countable オブジェクト。
mode
オプションのmode
引数が COUNT_RECURSIVE
(または 1) にセットされた場合、count()
は再帰的に配列をカウントします。
これは多次元配列の全ての要素をカウントするといった場合に特に有効です。
count() は、再帰を検出して無限ループを回避するようになっています。
しかしその場合 (配列の中に自分自身が複数回登場する場合) は毎回 E_WARNING
を発行し、期待する結果より大きい数を返します。
array_or_countable
に含まれる要素の数を返します。
もしパラメータが配列でもなく Countable インターフェイスを
実装したオブジェクトでもない場合、1 が返されます。
ひとつ例外があり、array_or_countable
が NULL
の場合、
0 が返されます。
例1 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));
var_dump(count(null));
var_dump(count(false));
?>
上の例の出力は以下となります。
int(3) int(3) Warning: count(): Parameter must be an array or an object that implements Countable in … on line 12 // as of PHP 7.2 int(0) Warning: count(): Parameter must be an array or an object that implements Countable in … on line 14 // as of PHP 7.2 int(1)
例2 再帰的な count() の例
<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard', 'pea'));
// 再帰的なカウント
echo count($food, COUNT_RECURSIVE); // output 8
// 通常のカウント
echo count($food); // output 2
?>
バージョン | 説明 |
---|---|
7.2.0 |
count() will now yield a warning on invalid countable types
passed to the array_or_countable parameter.
|