修复 PHP 更新后的非法字符串偏移
Fix Illegal string offset after PHP update
我更新了我的 PHP 版本,并且在我的大部分页面上都遇到了这个错误:
Warning: Illegal string offset in "..." on line 236
经过数小时的谷歌搜索和故障排除后,我发现错误是因为数组中的变量被读取为字符串。我不知道如何解决这个问题。请帮忙!
这是导致错误的代码行:
if(isset($_SESSION['email']) && $_SESSION['email']['loggedIn']){ ... } else { ... }
这可能是因为 $_SESSION["email"]
包含一个字符串,而不是一个数组,所以 $_SESSION["email"]["loggedIn"]
失败。
你应该先检查一下is_array($_SESSION["email"])
if(isset($_SESSION['email']) && is_array($_SESSION["email"] && $_SESSION['email']['loggedIn'])
升级刚刚打开错误 reporting/error 显示,这在您之前的版本中是关闭的,但这仍然是一个错误。这将检查它是否已设置并且它不为空(''
、false
、null
或 0
):
if(!empty($_SESSION['email']['loggedIn'])) {
我更新了我的 PHP 版本,并且在我的大部分页面上都遇到了这个错误:
Warning: Illegal string offset in "..." on line 236
经过数小时的谷歌搜索和故障排除后,我发现错误是因为数组中的变量被读取为字符串。我不知道如何解决这个问题。请帮忙!
这是导致错误的代码行:
if(isset($_SESSION['email']) && $_SESSION['email']['loggedIn']){ ... } else { ... }
这可能是因为 $_SESSION["email"]
包含一个字符串,而不是一个数组,所以 $_SESSION["email"]["loggedIn"]
失败。
你应该先检查一下is_array($_SESSION["email"])
if(isset($_SESSION['email']) && is_array($_SESSION["email"] && $_SESSION['email']['loggedIn'])
升级刚刚打开错误 reporting/error 显示,这在您之前的版本中是关闭的,但这仍然是一个错误。这将检查它是否已设置并且它不为空(''
、false
、null
或 0
):
if(!empty($_SESSION['email']['loggedIn'])) {