is_countable

(PHP 7 >= 7.3.0)

is_countable 引数が、数えられる値かどうかを調べる

説明

is_countable ( mixed $var ) : bool

引数の内容が、array または Countable を実装したオブジェクトかどうかを調べます。

パラメータ

var

チェックする値

返り値

var が数えられる場合に TRUE、 それ以外の場合に FALSE を返します。

変更履歴

バージョン 説明
7.3.0 is_countable() が追加されました。

例1 is_countable() の例

<?php
var_dump
(is_countable([123])); // bool(true)
var_dump(is_countable(new ArrayIterator(['foo''bar''baz']))); // bool(true)
var_dump(is_countable(new ArrayIterator())); // bool(true)
var_dump(is_countable(new stdClass())); // bool(false)

参考

  • is_array() - 変数が配列かどうかを検査する
  • is_object() - 変数がオブジェクトかどうかを検査する
  • is_iterable() - 変数の内容が反復可能な値であることを確認する
  • is_bool() - 変数が boolean であるかを調べる

add a note add a note

User Contributed Notes 3 notes

up
17
info at arisendrake dot de
8 months ago
If you are unable to upgrade to PHP 7.3 (not released at the time of writing), you can use this simple polyfill:

<?php
if (!function_exists('is_countable')) {
    function
is_countable($var) {
        return (
is_array($var) || $var instanceof Countable);
    }
}
?>
up
1
deoomen
1 month ago
Polyfill written by arisendrake is not quite good. It return FALSE when checking an Simple XML Node but count() works properly on PHP 7.1 and 7.3.
Better is this one:

<?php
if (version_compare(PHP_VERSION, "7.3") < 0 && !function_exists("is_countable")) {
    function
is_countable($var): bool
   
{
        return (
is_array($var) || is_object($var) || is_iterable($var) || $var instanceof Countable);
    }
}
?>
up
0
danmichaelo at gmail dot com
1 month ago
Note that a polyfill for this method is also provided by the symfony/polyfill project.
To Top