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 的对象