修复 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 显示,这在您之前的版本中是关闭的,但这仍然是一个错误。这将检查它是否已设置并且它不为空(''falsenull0):

if(!empty($_SESSION['email']['loggedIn'])) {