array_key_exists抛出错误:第二个参数应该是数组或对象


array_key_exists throwing error: The second argument should be either an array or an object

我检查了所有 29 个以前标记为 array_key_exists 的帖子,我找不到解决我问题的具体问题。我们的服务器最近进行了更新,我们已经升级到 PHP 5.2.17(是的,我知道这仍然落后,但随着我们的继续前进,我们正在修复问题,5.3 导致太多问题需要一次处理,更不用说 5.4)。

我们的网页抛出与array_key_exists相关的错误消息:

[错误][

2][array_key_exists() [function.array-key-exists]:第二个 参数应该是数组或对象]

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

在上面的代码中(我认为),我们正在检查是否已为当前帐户设置并存在会话。如果是这样,我们什么都不做。否则,我们将在此之后的另一个 else 语句中设置会话。

$_SESSION["ACCOUNT"]正在 cookie 中设置。值"ACCOUNT"是子域,也用于标识数据库中的帐户。以下是 cookie 中的行,显示帐户已设置。该帐户确实存在。

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

我的问题是现在应该如何对那行 php 进行编码以免引发该错误?

谢谢!

你应该

改用isset

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