Ошибка выброса array_key_exists: вторым аргументом должен быть либо массив, либо объект

Я проверил все 29 предыдущих сообщений, помеченных с помощью array_key_exists, и не могу найти ответ на конкретный вопрос, касающийся моей проблемы. Наш сервер был недавно обновлен, и мы перешли на PHP 5.2.17 (и да, я знаю, что он все еще позади, но мы исправляем проблемы, поскольку мы продолжаем продвигаться, и 5.3 вызвало слишком много проблем для одновременной обработки, пусть только 5.4).

Наши веб-страницы выдают сообщение об ошибке, связанное с array_key_exists:

[ОШИБКА] [2] [array_key_exists () [function.array-key-существующие]]: второй
аргумент должен быть либо массивом, либо объектом]
else if(array_key_exists("ACCOUNT", $_SESSION) && $_SESSION["ACCOUNT"] == $target){
// do nothing, we are a-ok
}

В приведенном выше коде (я думаю) мы проверяем, был ли сеанс уже установлен и существует для данной учетной записи. Если так, мы ничего не делаем. В противном случае мы устанавливаем сессию в другом операторе else после этого.

$_SESSION["ACCOUNT"] устанавливается в куки. Значение «ACCOUNT» — это поддомен, который также используется для идентификации учетной записи в базе данных. Вот строки из куки, которые показывают, что аккаунт установлен. Учетная запись существует.

SESSION[ACCOUNTID] = 39
SESSION[ACCOUNT] = demo
SESSION[PAIDACCOUNT] = 0

Мой вопрос заключается в том, как теперь должна быть закодирована эта строка php, чтобы не выдавать эту ошибку?

Спасибо!

-1

Решение

Вы должны использовать isset вместо

else if(isset($_SESSION["ACCOUNT"]) && $_SESSION["ACCOUNT"] == $target){
// do nothing, we are a-ok
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]