関数の概要
PHPのsizeof関数は、配列やオブジェクトの要素数を取得するために使われます。実際には、count()関数のエイリアスであり、同じ動作をします。配列の要素数を簡単に知りたいときにとても便利な関数です。
パラメータの説明
mixed $array_or_countable– 要素数を取得したい配列またはCountableインターフェースを実装したオブジェクトint $mode(省略可能) – 要素のカウント方法を指定します。通常は省略して問題ありません。省略時は浅いレベルの要素数が返ります。COUNT_NORMAL(0)かCOUNT_RECURSIVE(1)を指定可能で、COUNT_RECURSIVEを使うと多次元配列の全階層の要素数を合計します。
戻り値
指定した配列やオブジェクトの要素数を整数で返します。配列でなければ1を返すこともありますが、通常は配列やCountableオブジェクトに使います。
使用例
基本的な使い方
<?php
$array = [1, 2, 3, 4];
echo sizeof($array); // 4
?>
単純な配列の要素数を取得しています。この例では4が出力されます。
多次元配列でのカウント
<?php
$array = [
[1, 2],
[3, 4, 5],
6
];
echo sizeof($array); // 3
echo sizeof($array, COUNT_RECURSIVE); // 6
?>
1回目は浅いレベルで配列の要素数(3)を取得。2回目は再帰的に全ての子要素の合計数(6)を取得しています。
空の配列やオブジェクトの場合
<?php
$empty = [];
echo sizeof($empty); // 0
class SampleCountable implements Countable {
public function count() {
return 7;
}
}
$obj = new SampleCountable();
echo sizeof($obj); // 7
?>
空配列は0を返し、Countableインターフェースを実装したオブジェクトも正しく要素数が返されます。
関連する関数
count()– sizeofの本体関数であり、ほとんど同じ用途です。array_key_exists()– 配列の特定のキーが存在するかを調べる関数。is_array()– 変数が配列かどうかを判定する関数。
まとめ
PHPのsizeof関数は配列やCountableオブジェクトの要素数を簡単に取得できる便利な関数です。count()と同じ働きをし、多次元配列の要素数を再帰的に数えられるオプションもあります。配列のサイズを知りたい実務シーンでよく使われる基本的かつ重要な関数なので、使い方を覚えておくと良いでしょう。
