PHP count():参数必须是数组或者实现了Countable的对象

Posted

技术标签:

【中文标题】PHP count():参数必须是数组或者实现了Countable的对象【英文标题】:PHP count(): Parameter must be an array or an object that implements Countable 【发布时间】:2019-08-03 09:11:16 【问题描述】:

这是我在文件中的代码的 sn-p public_html/wp-content/themes/arabv3/CustomMetaBox/CMB2.php,从第 565 行开始

        // if it's an array of one, extract it
    elseif ( is_array( $this->prop( 'object_types' ) ) && count( $this->prop( 'object_types' ) === 1 ) ) 
        $cpts = $this->prop( 'object_types' );
        $type = is_string( end( $cpts ) )
            ? end( $cpts )
            : false;
    

当我运行代码时,我收到以下错误:

PHP 警告:count():参数必须是数组或实现了 Countable 的对象

【问题讨论】:

显然count()作用的属性不是数组也不是可数的,参考$this->prop('object_types')。它作用于布尔值,因为 count() 具有比较功能 你有一个错字。将count($this->prop('object_types') === 1 ) 更改为count($this->prop('object_types')) === 1 【参考方案1】:

您的 PHP 版本?如果它的 7.2 那么 count 函数在你计算 stdclass 时会给你错误。

示例:

$count_value = stdClass Object( [asset_id] => 234 [parent_asset_id] => '');

echo count($count_value);

//这在php 7.2版本的情况下会报错

您可以将类型转换为数组或将该标准类设为数组。

您可以查看 php 文档:-

https://www.php.net/manual/en/migration72.incompatible.php#migration72.incompatible.warn-on-non-countable-types

【讨论】:

以上是关于PHP count():参数必须是数组或者实现了Countable的对象的主要内容,如果未能解决你的问题,请参考以下文章

laravel : count(): 参数必须是数组或实现 Countable 的对象

Drupal:count():参数必须是数组或者实现了Countable的对象

搜索框count():参数必须是数组或者实现了Countable的对象

PHP 警告:count(): 参数必须是数组或实现 Countable 的对象

PHP警告消息:count():参数必须是实现Countable的数组或对象[重复]

Guzzle Error count():参数必须是数组或者实现了Countable的对象