header

content

Warning: Trying to access array offset on value of type bool
Warning: Trying to access array offset on value of type bool
$id_block_projects = $el["IBLOCK_ID"];

изменить на:

$id_block_projects = (is_array($el) ? $el["IBLOCK_ID"] : NULL);
[Error] Call to undefined function each() (0) /***/bitrix/modules/statistic/classes/general/statistic.php:782
[Error] Call to undefined function each() (0) /***/bitrix/modules/statistic/classes/general/statistic.php:782
При обновлении не обновился системный модуль "statistic".

В указанном файле 782-ю строку:

list(,$value) = each($arrADV);

заменить на:

$value = reset($arrADV);
call_user_func_array(): Argument #1 ($function) must be a valid callback, non-static method НазваниеМодуля::МетодКласса() cannot be called statically (0)
call_user_func_array(): Argument #1 ($function) must be a valid callback, non-static method НазваниеМодуля::МетодКласса() cannot be called statically (0)
Необходимо найти код данного модуля по следующему пути (/bitrix/modules/название.модуля), определиться с классом в котором возникает данная ошибка и к данному классу приписать служебное слово static, примерно так:

static function МетодКласса()
[Ux11] Ошибка описания модуля "название.модуля"
[Ux11] Ошибка описания модуля "название.модуля"
Не установлено соединение с сервером обновлений. [Ux11] Ошибка описания модуля "название.модуля"

При возникновении данной ошибки нужно либо обновить модуль до последней версии, либо в файле /bitrix/modules/название.модуля/install/index.php заменить название функции function название_модуля() на function __construct() После этого ошибка должна уйти
Argument #1 ($value) must be of type Countable|array, null given (0)
Argument #1 ($value) must be of type Countable|array, null given (0)
Данная ошибка характерна, например, для функций count(), sort(), ksort() и подобных.

В битриксе можно часто встретить подобный код, которым разработчики проверяли наличие элементов в массиве и, в зависимости от результата, выполняли какое либо действие:

if (count($arResult["ITEMS"]) > 0) {}
или
if (count($arResult["ITEMS"])) {}

Ранее данная конструкция нам возвращала false и в случае если $arResult["ITEMS"] === Array(), и в случае если $arResult["ITEMS"] неопределен. Теперь же возникнет ошибка, если $arResult["ITEMS"] не определен или его значение не может быть "посчитано", например если значение типа Integer

Быстро исправить данную ошибку можно следующим образом:

if (is_countable($arResult["ITEMS"]) && count($arResult["ITEMS"]) > 0)
Или
if (is_array($arResult["ITEMS"]) && count($arResult["ITEMS"]) > 0)

Главная суть в том, что переменная, передаваемая в функцию count() должна существовать, быть определена и иметь тип, который может быть "посчитан", например Array

Для быстрого решения этой ошибки в функциях сортировки sort(), ksort() и т.д. можно использовать следующий код:

if (is_array($arResult["ITEMS"])) sort($arResult["ITEMS"]);

А так же возможен вариант явного приведения переменной к необходимому типу:

$arResult["ITEMS"] = (array)$arResult["ITEMS"];
Или
sort((array)$arResult["ITEMS"]);


Но в данном случае нужно понимать, что изначальное значение типа null, boolean, integer будет приведено к типу Array, что не всегда правильно для дальнейшего выполнения кода