修复PHP更新后的非法字符串偏移量

时间:2016-10-21 22:52:15

标签: php arrays string php-5.6

我更新了我的PHP版本,并且在我的大多数网页上都收到了此错误:

  

警告:第236行“......”中的非法字符串偏移

谷歌搜索和故障排除几个小时后,我发现错误是因为数组中的变量被读取为字符串。我对如何解决这个问题一无所知。请帮忙!

这是导致错误的代码行:

if(isset($_SESSION['email']) && $_SESSION['email']['loggedIn']){ ... } else { ... }

2 个答案:

答案 0 :(得分:1)

这可能是因为$_SESSION["email"]包含一个字符串,而不是一个数组,因此$_SESSION["email"]["loggedIn"]失败。

您应该先检查is_array($_SESSION["email"])

if(isset($_SESSION['email']) && is_array($_SESSION["email"] && $_SESSION['email']['loggedIn'])

答案 1 :(得分:0)

升级只是打开了错误报告/错误显示,这在您之前的版本中已关闭,但这仍然是一个错误。这将检查它是否已设置且不为空(''falsenull0):

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