count
変数に含まれるすべての要素、
あるいはオブジェクトに含まれる何かの数を数える
&reftitle.description;
intcount
mixedvar
intmodeCOUNT_NORMAL
変数に含まれるすべての要素、
あるいはオブジェクトに含まれる何かの数を数えます。
オブジェクトに対して、もし SPL
がインストールされている場合、インターフェイス
Countable を実装することで count
にフックすることができます。このインターフェイスには 1 つのメソッド
Countable::count があり、count
関数に対する値を返します。
配列の実装やPHPでの使用法に関する詳細な説明については、マニュアルの
配列のセクションを参照ください。
&reftitle.parameters;
var
配列あるいはオブジェクト。
mode
オプションのmode 引数が COUNT_RECURSIVE
(または 1) にセットされた場合、count
は再帰的に配列をカウントします。
これは多次元配列の全ての要素をカウントするといった場合に特に有効です。
count は、再帰を検出して無限ループを回避するようになっています。
しかしその場合 (配列の中に自分自身が複数回登場する場合) は毎回 E_WARNING
を発行し、期待する結果より大きい数を返します。
&reftitle.returnvalues;
varに含まれる要素の数を返します。
もし var が配列もしくは
Countable インターフェイスを実装したオブジェクトではない場合、
1 が返されます。
ひとつ例外があり、var が &null; の場合、
0 が返されます。
count は、セットされていない変数に関して 0
を返しますが、変数が空の配列として初期化されている場合にも 0 を返します。
ある変数がセットされているかどうかを調べるには、
isset を使用してください。
&reftitle.changelog;
&Version;
&Description;
4.2.0
オプションのパラメータ mode が追加されました。
&reftitle.examples;
count の例
]]>
再帰的な count の例
array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard', 'pea'));
// 再帰的なカウント
echo count($food, COUNT_RECURSIVE); // output 8
// 通常のカウント
echo count($food); // output 2
?>
]]>
&reftitle.seealso;
is_array
isset
strlen