CodeIgniter 3登录类抛出array_key_exists()期望参数2为数组,给定null

时间:2015-07-08 22:09:22

标签: php arrays codeigniter

我们的CodeIgniter 3源代码在应用程序/库中有一个Auth类,具有以下功能:

1    |    2
3    |    4

首先,我认为返回值必须从false更改为null但是,更改返回值后错误仍然存​​在。既然无效或虚假的返回值都不能缓解这种情况,那么还应该采取什么其他方法来弥补手头的错误呢?

1 个答案:

答案 0 :(得分:1)

问题是因为这行返回null而不是数组

$user = $CI->users->get(array("screen_name" => $attempt["screen_name"]));

在将$ user传递给array_key_exists()函数之前,您应该验证数据库是否返回了有意义的结果。

这段代码将被写成

if ($user == null || !array_key_exists("password", $user)) {
    return null;
}

这样做时,您不会将null值传递给array_key_exists