0 Пользователей и 1 Гость просматривают эту тему.
  • 7 Ответов
  • 153 Просмотров
*

Stasweb

  • Завсегдатай
  • 1353
  • 23 / 0
Ошибка Warning: count():
« : 04.06.2019, 09:03:18 »
При включении отображения всех ошибок появилось
Warning: count(): Parameter must be an array or an object that implements Countable inВот код
Код
    function treerecurse($id,$list, &$children, $maxlevel = 9999, $level = 0){
        if (@$children[$id] && $level <= $maxlevel)
        {
            foreach ($children[$id] as $v)
            {
                $id = $v->id;
                $list[$id] = $v;
                $list[$id]->children = count(@$children[$id]);
                $list[$id]->level = $level;
                $list = $this->treerecurse($id,$list, $children, $maxlevel, $level + 1);
            }
        }
        return $list;
    }
Модуль использую JUX VM Megamenu, при этом меню работает нормально. Подскажите как победить ошибку
*

AlekVolsk

  • Гуру
  • 6889
  • 403 / 4
Re: Ошибка Warning: count():
« Ответ #1 : 04.06.2019, 09:22:43 »
предупреждение гласит о том, что в функцию count() передаётся параметр, не поддающийся подсчёту, т.е. это не является массивом или диассоциированным перечисляемым объектом, т.е. счётным элементом.

попробуйте переписать строку, в которой присутствует count, примерно так:
Код: php
$list[$id]->children = (is_array($children[$id]) || (is_object($children[$id]) && ($children[$id] instanceof \Traversable ))) ? count($children[$id]) : 0;
*

draff

  • Живу я здесь
  • 4261
  • 288 / 7
  • Ищу работу
Re: Ошибка Warning: count():
« Ответ #2 : 04.06.2019, 09:53:04 »
Тут же подавляют ошибку
Код
@$children[$id]
а мы сразу выходим, если пусто
Код
 function treerecurse($id,$list, &$children, $maxlevel = 9999, $level = 0){
if(empty($children)) return;
        if (@$children[$id] && $level <= $maxlevel)
*

Stasweb

  • Завсегдатай
  • 1353
  • 23 / 0
Re: Ошибка Warning: count():
« Ответ #3 : 04.06.2019, 09:56:01 »
получил предупреждение
Notice: Undefined offset: 147 in ....modules/mod_jux_vm_megamenu/includes/menu/vm_megamenu.php on line 218весь файл
Спойлер
[свернуть]
*

AlekVolsk

  • Гуру
  • 6889
  • 403 / 4
Re: Ошибка Warning: count():
« Ответ #4 : 04.06.2019, 09:59:38 »
ну тут надо уже на сайте нормально отлаживать, толку в отдельном файле нет, по кускам кода не всегда можно отванговать

Тут же подавляют ошибку
самое опасное решение проблемы, с таким же успехом можно и подавить ошибку на count(), но проблему это не решит
« Последнее редактирование: 04.06.2019, 10:02:47 от AlekVolsk »
*

Stasweb

  • Завсегдатай
  • 1353
  • 23 / 0
Re: Ошибка Warning: count():
« Ответ #5 : 04.06.2019, 11:06:50 »
ну тут надо уже на сайте нормально отлаживать, толку в отдельном файле нет, по кускам кода не всегда можно отванговать
Ошибка появилась при смене версии PHP с 5.6 на 7.2Сайт _https://update.lik-astana.kz/
*

draff

  • Живу я здесь
  • 4261
  • 288 / 7
  • Ищу работу
*

Stasweb

  • Завсегдатай
  • 1353
  • 23 / 0
Re: Ошибка Warning: count():
« Ответ #7 : 04.06.2019, 11:45:01 »
Вот так ошибки пропали
Код
/*
    function treerecurse($id,$list, &$children, $maxlevel = 9999, $level = 0){
        if (@$children[$id] && $level <= $maxlevel)
    */       
        function treerecurse($id,$list, &$children, $maxlevel = 9999, $level = 0){
          if(empty($children)) return;
           if (@$children[$id] && $level <= $maxlevel)
        {
            foreach ($children[$id] as $v)
            {
                $id = $v->id;
                $list[$id] = $v;
            //  $list[$id]->children = count(@$children[$id]);
            //  $list[$id]->children = (is_array($children[$id]) || (is_object($children[$id]) && ($children[$id] instanceof \Traversable )))? count($children[$id]) : 0;
                $list[$id]->level = $level;
                $list = $this->treerecurse($id,$list, $children, $maxlevel, $level + 1);
            }
        }
        return $list;
    }
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка php скрипта

Автор Ramiras

Ответов: 7
Просмотров: 138
Последний ответ 29.10.2019, 09:00:47
от draff
Ошибка Notice: Undefined index

Автор yasna

Ответов: 3
Просмотров: 189
Последний ответ 23.10.2019, 01:24:39
от 4130688
Ошибка AcyMailing CB Plugin

Автор xela137

Ответов: 0
Просмотров: 78
Последний ответ 18.10.2019, 18:06:00
от xela137
Ошибка в меню сайта

Автор volciti

Ответов: 5
Просмотров: 765
Последний ответ 01.10.2019, 14:10:31
от arma
Ошибка 1054 - обновление Joomla 2.5 на 3.4

Автор arevuare

Ответов: 1
Просмотров: 145
Последний ответ 25.09.2019, 14:02:14
от ChaosHead