is_countable

関数の概要

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_countabletrue を返します。

配列以外のオブジェクトやスカラー値の場合

<?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() を呼び出す問題を未然に防げ、コードの安全性・可読性が向上します。ぜひ実務でも積極的に活用してください。