is_countable()
(PHP 7 >= 7.3.0)
Verify that the contents of a variable is a countable value
说明
is_countable(mixed $var): bool
Verify that the contents of a variable is anarrayor an object implementingCountable
参数
- $var
The value to check
返回值
ReturnsTRUE
if$varis countable,FALSE
otherwise.
更新日志
版本 | 说明 |
---|---|
7.3.0 | is_countable()has been added. |
范例
Example #1is_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)
参见
is_array()
检测变量是否是数组is_object()
检测变量是否是一个对象is_iterable()
Verify that the contents of a variable is an iterable valueis_bool()
检测变量是否是布尔型
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); } } ?>
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); } } ?>