参数必须是实现 Countable 的数组或对象如何解决这个问题?
Posted
技术标签:
【中文标题】参数必须是实现 Countable 的数组或对象如何解决这个问题?【英文标题】:Parameter must be an array or an object that implements Countable how fix this? 【发布时间】:2019-12-31 17:29:35 【问题描述】:我有一个错误:警告:count():参数必须是数组或实现可计数的对象
public static function setSection( $section, $section_data = array(), $additional_section_data = array() )
if(count($additional_section_data) > 0 && !empty($additional_section_data))
$section_data['fields'] = array_merge($section_data['fields'], $additional_section_data);
self::$sections[ $section ] = $section_data;
【问题讨论】:
var_dump()$section_data['fields']
和 $additional_section_data
看看你得到了什么。
$additional_section_data
在调用此函数时可能不是数组。如果您省略参数,它将是一个数组,但是当您不省略参数时,您需要确保传递可数。
【参考方案1】:
这个问题意味着变量$section_data
不是一个数组。尝试使用gettype
函数找出变量的类型,或使用var_dump
显示它。
【讨论】:
如果你删除它,你会在函数 array_merge 的下一行遇到问题。 $additional_section_data 不是数组,an 不是空的。你会在结果数组中得到什么?)以上是关于参数必须是实现 Countable 的数组或对象如何解决这个问题?的主要内容,如果未能解决你的问题,请参考以下文章
laravel : count(): 参数必须是数组或实现 Countable 的对象
PHP 警告:count(): 参数必须是数组或实现 Countable 的对象
消息:count():参数必须是数组或实现 Countable 的对象