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

Posted

技术标签:

【中文标题】消息:count():参数必须是数组或实现 Countable 的对象【英文标题】:Message: count(): Parameter must be an array or an object that implements Countable 【发布时间】:2021-05-30 20:18:54 【问题描述】:

请告诉我怎么了?

public function view($link = null) 
    $temp = $this->BlogModel->getDetail('link', $link);
    
    if (count($temp) == 1)  "this countable"
        $data = array(
            'app' => $this->app(),
            'data' => $temp,
            'comments' => $this->BlogCommentModel->getAll(['blog_id' => $temp->id], 'id asc'),
            'data_latest' => $this->BlogModel->getLatest(6)
        );
        $this->BlogModel->updateVisitCount($link);
        $this->template->set('title', $data['data']->title . ' | ' . $data['app']->app_name, TRUE);
        $this->template->load_view($data['app']->template_frontend.'/detail', $data, TRUE);
        $this->template->render();
     else 
        redirect(base_url('blog/'));
    ;

谢谢

【问题讨论】:

您是否尝试打印此$temp 您必须添加更多信息,根据代码无法确定。 $temp 的值是多少。请记录并将其添加到问题中。 如果 $temp 设置为 null、字符串、对象(没有 Countable 实现),count($temp) 将产生错误。也许您应该使用另一种验证方法,例如if (!is_null($temp))... 谢谢,使用 if (!is_null($temp))... is work 【参考方案1】:

这条线是什么? if (count($temp) == 1) "this countable" 你必须先删除“这个可数” 你能发布错误吗?

【讨论】:

【参考方案2】:

使用

if (is_array($temp) && count($temp) == 1) "这个可数"

而不是

if (count($temp) == 1) "这个可数"

【讨论】:

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

消息:count():参数必须是在centos上实现Countable codeigniter的数组或对象

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

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

count():参数必须是数组或对象,根据数组大小实现Countable error

MYBB 警告 [2] count():参数必须是数组或实现 Countable 的对象 - 行:906

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