首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查某物是否可数?

如何检查某物是否可数?
EN

Stack Overflow用户
提问于 2017-03-20 17:12:43
回答 2查看 11.4K关注 0票数 11

我有一个变量:$a。我不知道这是什么。我想看看我能不能数一数。通常,只要使用数组,我就可以这样做:

代码语言:javascript
运行
复制
if (is_array($a)) {
    echo count($a);
}

但其他一些事情是可以计数的。假设一个Illuminate\Support\Collection是可以用Laravel计算的:

代码语言:javascript
运行
复制
if ($a instanceof \Illuminate\Support\Collection) {
    echo count($a);
}

但是,有没有什么东西可以同时做这两件事(也许可以和其他一些可计数的实例一起工作)。类似于:

代码语言:javascript
运行
复制
if (is_countable($a)) {
    echo count($a);
}

这种功能存在吗?我错过了什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-09 16:44:48

PHP 7.3

根据documentation,您可以使用is_countable函数:

代码语言:javascript
运行
复制
if (is_countable($a)) {
    echo count($a);
}
票数 12
EN

Stack Overflow用户

发布于 2018-04-18 21:40:50

对于以前的PHP版本,您可以使用以下代码

代码语言:javascript
运行
复制
if (is_array($foo) || $foo instanceof Countable) {
    return count($foo);
}

或者,您也可以实现一种polyfill,如下所示

代码语言:javascript
运行
复制
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

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42899605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档