【问题标题】:PHP count(): Parameter must be an array or an object that implements CountablePHP count():参数必须是数组或者实现了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

标签: php count


【解决方案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

【讨论】:

    猜你喜欢
    • 2018-06-28
    • 2018-06-08
    • 2018-09-22
    • 1970-01-01
    • 2021-11-05
    • 2018-11-26
    • 2018-07-24
    • 2019-04-02
    • 2019-04-29
    相关资源
    最近更新 更多