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

Stasweb

  • Завсегдатай
  • 1492
  • 24 / 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

  • Гуру
  • 6915
  • 415 / 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

  • Гуру
  • 5803
  • 434 / 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

  • Завсегдатай
  • 1492
  • 24 / 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

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

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

Stasweb

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

draff

  • Гуру
  • 5803
  • 434 / 7
  • ищу работу
*

Stasweb

  • Завсегдатай
  • 1492
  • 24 / 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;
    }
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка 0 Call to undefined function GuzzleHttp\choose_handler()

Автор Alllex

Ответов: 0
Просмотров: 142
Последний ответ 15.03.2024, 21:03:09
от Alllex
Ошибка version_compare(): Argument #3 ($operator)

Автор Шмайсер

Ответов: 1
Просмотров: 413
Последний ответ 07.11.2023, 20:44:21
от fsv
reCapcha во всплывающем окне - "Ошибка защиты от спама"

Автор Dannik

Ответов: 12
Просмотров: 1838
Последний ответ 14.09.2023, 18:59:24
от all_zer
Ошибка 1054 Unknown column 'created_by' in 'field list' VirtueMart

Автор Evgen Kulibin

Ответов: 3
Просмотров: 785
Последний ответ 26.02.2023, 01:56:42
от lakshmi
Ошибка "0 Некорректный контроллер: имя='user', формат=''"

Автор zeus07

Ответов: 14
Просмотров: 2304
Последний ответ 20.02.2023, 11:47:20
от wiz.alex