我检查了所有29个以前用array_key_exists标记的帖子,但我找不到一个可以处理我的问题的特定问题。我们的服务器最近已经更新,我们已经升级到PHP 5.2.17(是的,我知道它仍然落后,但我们正在修复问题,因为我们继续前进,5.3导致了一次处理的问题很多,更不用说5.4)。
我们的网页正在抛出与array_key_exists绑定的错误消息:
[ERROR] [2] [array_key_exists()[function.array-key-exists]:第二个 参数应该是数组或对象]
else if(array_key_exists("ACCOUNT", $_SESSION) && $_SESSION["ACCOUNT"] == $target){
// do nothing, we are a-ok
}
在上面的代码中(我认为)我们正在检查是否已为当前帐户设置并存在会话。如果是这样我们什么都不做否则,我们会在此之后的其他语句中设置会话。
$_SESSION["ACCOUNT"]
正在Cookie中设置。价值"帐户"是子域,也用于标识数据库中的帐户。以下是Cookie中显示帐户设置的行。该帐户确实存在。
SESSION[ACCOUNTID] = 39
SESSION[ACCOUNT] = demo
SESSION[PAIDACCOUNT] = 0
我的问题是,现在应该如何对这行php进行编码,以免引发该错误?
谢谢!
答案 0 :(得分:1)
您应该使用isset
代替
else if(isset($_SESSION["ACCOUNT"]) && $_SESSION["ACCOUNT"] == $target){
// do nothing, we are a-ok
}