php[world] 2019 — 25 years of PHP

is_countable

(PHP 7 >= 7.3.0)

is_countable Verify that the contents of a variable is a countable value

Description

is_countable ( mixed $var ) : bool

Verify that the contents of a variable is an array or an object implementing Countable

Parameters

var

The value to check

Return Values

Returns TRUE if var is countable, FALSE otherwise.

Changelog

Version Description
7.3.0 is_countable() has been added.

Examples

Example #1 is_countable() examples

<?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)

See Also

  • is_array() - Finds whether a variable is an array
  • is_object() - Finds whether a variable is an object
  • is_iterable() - Verify that the contents of a variable is an iterable value
  • is_bool() - Finds out whether a variable is a boolean

add a note add a note

User Contributed Notes 4 notes

up
19
info at arisendrake dot de
10 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
danmichaelo at gmail dot com
3 months ago
Note that a polyfill for this method is also provided by the symfony/polyfill project.
up
0
renic
1 month ago
be wary of using is_object($var) and assuming that the object has implemented Countable.  Not all objects are countable directly with count().
up
-2
deoomen
3 months 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);
    }
}
?>
To Top