Как исправить ошибку in_array(): Argument #2 ($haystack) must be of type array, bool given (0)?

После перехода на PHP8.1 возникли ошибки, все устранил, а вот с этой трудности...
in_array(): Argument #2 ($haystack) must be of type array, bool given (0)
.../bitrix/modules/aspro.tires2/classes/general/CTires2Cache.php:597

Строка 597:
if(in_array("ElementValues", $arSelectFields) && isset($item["IBLOCK_ID"]))


есть решение: if(is_array($ar) && count($ar)>5){
но я видимо его не правильно применяю...
  • Вопрос задан
  • 452 просмотра
Пригласить эксперта
Ответы на вопрос 1
@vdem
if (isset($item["IBLOCK_ID"])
    && is_array($arSelectFields)
    && in_array("ElementValues", $arSelectFields))
{
    // code
}

1. Не понимаю, зачем Вам проверка на count($arSelectFields).
2. Сначала проверяем $item["IBLOCK_ID"], - если отсутствует, то нет смысла в остальных проверках.
3. Скорее всего, проблема где-то выше по коду, из-за чего у Вас в $arSelectFields находится не массив, а булево значение (false).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы