📅  最后修改于: 2023-12-03 15:18:24.733000             🧑  作者: Mango
在PHP 7.3版本中,新增了一个函数is_countable(),该函数用于检查变量是否为可计数的类型,即数组或者实现了Countable接口的对象。如果参数是可计数类型,则返回true,否则返回false。
is_countable($var)
$var : 要检查的变量。
示例1:使用is_countable()函数检查数组是否可计数类型。
$arr = ['one', 'two', 'three'];
if (is_countable($arr)) {
echo count($arr);
}
输出:
3
示例2:使用is_countable()函数检查对象是否可计数类型。
class MyCountable implements Countable {
private $count = 3;
public function count(){
return $this->count;
}
}
$obj = new MyCountable;
if (is_countable($obj)) {
echo count($obj);
}
输出:
3
示例3:使用is_countable()函数检查字符串是否可计数类型。
$str = 'hello';
if (is_countable($str)) {
echo count($str);
}
输出:
Warning: count(): Parameter must be an array or an object that implements Countable in ...
从上面的例子可以看出,is_countable()函数并不能检查字符串是否是可计数类型。
is_countable()函数只可用于PHP 7.3版本及以上。
如果是尝试检查一个非法的类型,例如null或者一个标量类型(string、int、bool等),is_countable()函数会抛出一个警告并返回false。
虽然数组、Countable对象和迭代器都可以用count()函数统计元素的数量,但是这并不意味着它们一定是可计数类型,因为非法类型的参数调用count()函数也不会报错,而是返回0。因此,使用is_countable()函数来检查一个变量是否为可计数类型,可以增加代码的健壮性。
PHP官方文档:is_countable()