我有一个变量:$a
。我不知道这是什么。我想看看我能不能数一数。通常,只要使用数组,我就可以这样做:
if (is_array($a)) {
echo count($a);
}
但其他一些事情是可以计数的。假设一个Illuminate\Support\Collection
是可以用Laravel计算的:
if ($a instanceof \Illuminate\Support\Collection) {
echo count($a);
}
但是,有没有什么东西可以同时做这两件事(也许可以和其他一些可计数的实例一起工作)。类似于:
if (is_countable($a)) {
echo count($a);
}
这种功能存在吗?我错过了什么吗?
发布于 2018-03-09 08:44:48
发布于 2018-04-18 13:40:50
对于以前的PHP版本,您可以使用以下代码
if (is_array($foo) || $foo instanceof Countable) {
return count($foo);
}
或者,您也可以实现一种polyfill,如下所示
if (!function_exists('is_countable')) {
function is_countable($c) {
return is_array($c) || $c instanceof Countable;
}
}
请注意,这个polyfill不是我想出来的东西,而是直接从RFC中提取的新函数提案https://wiki.php.net/rfc/is-countable
https://stackoverflow.com/questions/42899605
复制