関数の概要
is_countable は、指定した変数が count() 関数でカウント可能な型かどうかを判定するPHPの組み込み関数です。配列や Countable インターフェースを実装したオブジェクトであれば true を返し、それ以外の型では false を返します。PHP 7.3.0 から利用可能です。
パラメータの説明
mixed $var: 判定したい変数を指定します。配列、オブジェクト、スカラー値などあらゆる型を渡せます。
戻り値
引数 $var が配列または Countable インターフェースを実装しているオブジェクトなら true、それ以外は false を返します。
使用例
基本的な使い方
<?php
$array = [1, 2, 3];
var_dump(is_countable($array)); // true
$string = "PHP";
var_dump(is_countable($string)); // false
?>
配列はカウント可能なので true、文字列は不可なので false が返されています。
Countableインターフェースを実装したオブジェクトの場合
<?php
class MyCollection implements Countable {
private $items = [];
public function __construct(array $items) {
$this->items = $items;
}
public function count() {
return count($this->items);
}
}
$obj = new MyCollection([1, 2, 3]);
var_dump(is_countable($obj)); // true
?>
自作クラスで Countable を実装していれば、is_countable は true を返します。
配列以外のオブジェクトやスカラー値の場合
<?php
class MyClass {}
$obj = new MyClass();
var_dump(is_countable($obj)); // false
$number = 10;
var_dump(is_countable($number)); // false
?>
Countable を実装していないオブジェクトや整数などのスカラーは false となります。
関連する関数
count()– 配列やカウント可能なオブジェクトの要素数を取得する関数is_array()– 変数が配列かどうかを判定する関数gettype()– 変数の型を取得する関数
まとめ
is_countable は、count() 関数でエラーなくカウントできるかを事前に判定するのに便利な関数です。配列や Countable インターフェース実装オブジェクトのみを対象とし、PHP 7.3以降で使えます。これにより意図しない型で count() を呼び出す問題を未然に防げ、コードの安全性・可読性が向上します。ぜひ実務でも積極的に活用してください。
