sizeof

関数の概要

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()と同じ働きをし、多次元配列の要素数を再帰的に数えられるオプションもあります。配列のサイズを知りたい実務シーンでよく使われる基本的かつ重要な関数なので、使い方を覚えておくと良いでしょう。