Задать вопрос

Требуется реальный пример как исправить ошибку с Warning: count(): Parameter must be an array or an object that implements Countable in ....?

Прошу помочь старику. В логах сервера очень частая ошибка на сайте с joomla 3.8 & PHP 7.3
Уточню, на всякий случай, текст ошибки и фрагмент проблемного кода:
Warning: count(): Parameter must be an array or an object that implements Countable in /..../components/com_weblinks/models/categories.php on line 95, referer: http...


/**
	 * Redefine the function and add some properties to make the styling more easy
	 *
	 * @return  mixed  An array of data items on success, false on failure.
	 */
	public function getItems()
	{
!!!Это строка 95 --->		if (!count($this->_items))
		{
			$app = JFactory::getApplication();
			$menu = $app->getMenu();
			$active = $menu->getActive();
			$params = new JRegistry;

			if ($active)
			{
				$params->loadString($active->params);
			}

			$options = array();
			$options['countItems'] = $params->get('show_cat_num_links', 1) || !$params->get('show_empty_categories_cat', 0);
			$categories = JCategories::getInstance('Weblinks', $options);
			$this->_parent = $categories->get($this->getState('filter.parentId', 'root'));

			if (is_object($this->_parent))
			{
				$this->_items = $this->_parent->getChildren();
			}
			else
			{
				$this->_items = false;
			}
		}

		return $this->_items;
	}

Дорогие гуру, как исправить его, чтобы работало?
Заранее благодарю.

Прошу прощения, я в PHP полный нолик, только в сравнении примеров дохожу как надо. Вот накопал такой вариант, он для моего случая подойдет?
if (isset($this->_items) && !empty($this->_items))

или

if (isset($this->_items) && count($this->_items))
  • Вопрос задан
  • 210 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@lexo64 Автор вопроса
найдено решение:

if ($this->_items === null)

после замены, сайт работает как обычно, ошибка больше не выводилась в логах.
Спасибо всем за проявленное терпение и принятое участие в решении проблемы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
if (is_countable($this->_items) && count($this->_items))

ну уж в таком-то варианте должно сработать
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
BGStaff Москва
До 300 000 ₽
Greenway Global Новосибирск
от 150 000 до 250 000 ₽
Хабр Москва
от 250 000 до 320 000 ₽