我更新了我的PHP版本,并且在我的大多数网页上都收到了此错误:
警告:第236行“......”中的非法字符串偏移
谷歌搜索和故障排除几个小时后,我发现错误是因为数组中的变量被读取为字符串。我对如何解决这个问题一无所知。请帮忙!
这是导致错误的代码行:
if(isset($_SESSION['email']) && $_SESSION['email']['loggedIn']){ ... } else { ... }
答案 0 :(得分:1)
这可能是因为$_SESSION["email"]
包含一个字符串,而不是一个数组,因此$_SESSION["email"]["loggedIn"]
失败。
您应该先检查is_array($_SESSION["email"])
if(isset($_SESSION['email']) && is_array($_SESSION["email"] && $_SESSION['email']['loggedIn'])
答案 1 :(得分:0)
升级只是打开了错误报告/错误显示,这在您之前的版本中已关闭,但这仍然是一个错误。这将检查它是否已设置且不为空(''
,false
,null
或0
):
if(!empty($_SESSION['email']['loggedIn'])) {