PHPで配列の要素数を取得する際に便利な count() 関数について解説します。この記事では、count() の基本的な使い方や、注意点をわかりやすく説明します。
1. count関数とは?
count() 関数は、配列の要素数を取得するためのPHPの組み込み関数です。シンプルな構文で使いやすく、多くの場面で利用されます。
構文:
count(配列, モード)
- 配列: 要素数を取得したい配列
- モード(省略可):
COUNT_RECURSIVEを指定すると、多次元配列の要素を再帰的にカウントできる
2. count関数の基本的な使い方
まずは、基本的な配列の要素数を取得する例を見てみましょう。
2.1 一般的な配列の要素数を取得する
$array = [1, 2, 3, 4, 5];
echo count($array); // 出力: 5
この場合、配列には5つの要素があるため、count($array) は 5 を返します。
. count関数の応用
3.1 空の配列の要素数を取得する
$emptyArray = [];
echo count($emptyArray); // 出力: 0
空の配列の場合、count() は 0 を返します。
3.2 多次元配列の要素数を取得する(通常の count())
$multiArray = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
echo count($multiArray); // 出力: 3
この場合、最上位の配列に3つの配列が含まれているため、結果は 3 になります。
3.3 多次元配列の全要素数を取得する(COUNT_RECURSIVE)
echo count($multiArray, COUNT_RECURSIVE); // 出力: 12
COUNT_RECURSIVE を指定すると、配列内のすべての要素がカウントされ、9(要素) + 3(配列) = 12 になります。
4. count関数の注意点
4.1 NULL や false に対する count() の動作
count() は NULL や false に対して 0 を返します。
$nullVar = null;
echo count($nullVar); // 出力: 0
$falseVar = false;
echo count($falseVar); // 出力: 0
これにより、意図しない結果を引き起こす可能性があるため注意が必要です。
4.2 オブジェクトに count() を使う場合の注意
PHP 7.2 以降では、count() に Countable インターフェースを実装していないオブジェクトを渡すとエラーになります。
class Sample {}
$obj = new Sample();
echo count($obj); // PHP 7.2以降では警告が発生
オブジェクトのプロパティ数をカウントしたい場合は、get_object_vars() を使うのが安全です。
$objWithProps = new class {
public $a = 1;
public $b = 2;
};
echo count(get_object_vars($objWithProps)); // 出力: 2
5. まとめ
count() 関数は、PHPで配列の要素数を取得する基本的な関数ですが、多次元配列の扱いや NULL・オブジェクトのケースには注意が必要です。
ポイントまとめ:
count()は配列の要素数を返すCOUNT_RECURSIVEを使うと多次元配列のすべての要素をカウント可能NULLやfalseに対して0を返す- PHP 7.2 以降では、
count()にCountableでないオブジェクトを渡すと警告が出る
PHPの基本を押さえて、より安全なコーディングを心がけましょう!