MYBB Предупреждение [2] count (): Параметр должен быть массивом или объектом, реализующим Countable - Строка: 906 - PullRequest
0 голосов
/ 09 мая 2018

Привет, извините, если dublicate, но я не знаю, как исправить эту ошибку MyBB 1.8.15 на PHP 7.24 Предупреждение [2] count (): Параметр должен быть массивом или объектом, который реализует Счетное - Строка: 906

    // Build the threaded post display tree.
    $query = $db->query("
        SELECT p.username, p.uid, p.pid, p.replyto, p.subject, p.dateline
        FROM ".TABLE_PREFIX."posts p
        WHERE p.tid='$tid'
        $visible
        ORDER BY p.dateline
    ");
    while($post = $db->fetch_array($query))
    {
        if(!$postsdone[$post['pid']])
        {
            if($post['pid'] == $mybb->input['pid'] || ($isfirst && !$mybb->input['pid']))
            {
                $postcounter = count($postsdone);
                $isfirst = 0;
            }
            $tree[$post['replyto']][$post['pid']] = $post;
            $postsdone[$post['pid']] = 1;
        }
    }

    $threadedbits = buildtree();
    $posts = build_postbit($showpost);
    eval("\$threadexbox = \"".$templates->get("showthread_threadedbox")."\";");
    $plugins->run_hooks("showthread_threaded");
}

Строка 906 дает ошибку $postcounter = count($postsdone);

1 Ответ

0 голосов
/ 17 октября 2018

Эта ошибка произошла бы, если бы $ postsdone не был оценен как "Счетный" (в данном случае, если бы это был не массив.) Я бы проверил, что $ postsdone является массивом перед выполнением count ($ postsdone). Например:

if(is_array($postsdone)){
   $postcounter = count($postsdone);
}
else{
   // set $postcounter to whatever you want it be...
}
...