be wary of using is_object($var) and assuming that the object has implemented Countable. Not all objects are countable directly with count().
(PHP 7 >= 7.3.0)
is_countable — Verify that the contents of a variable is a countable value
var
The value to check
Returns TRUE
if var
is countable, FALSE
otherwise.
版本 | 说明 |
---|---|
7.3.0 | is_countable() has been added. |
Example #1 is_countable() examples
<?php
var_dump(is_countable([1, 2, 3])); // 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)
be wary of using is_object($var) and assuming that the object has implemented Countable. Not all objects are countable directly with count().
Note that a polyfill for this method is also provided by the symfony/polyfill project.
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);
}
}
?>
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);
}
}
?>