不知何故这个数组不是数组?
Somehow this array is not an array?
下面的代码return一些让我莫名其妙的结果...
if(is_array($loginUser)) {
$_SESSION['name'] = $loginUser['firstname'];
$_SESSION['id'] = $loginUser['id'];
print_r($_SESSION['name']);
print_r($loginUser);
var_dump($loginUser[1]);
exit();
header("Location: ../index.php?page=home");
}
那个returns:
Notice: Undefined index: firstname in wwwroot/includes/userhandler.php
on line 124
Notice: Undefined index: id in wwwroot/includes/userhandler.php on
line 125
Array ( [0] => Array ( [0] => 4 [id] => 4 [1] => Johnny [firstname] => Johnny [2] => Appleseed [lastname] => Appleseed [3] => ja@ja.com [email] => ja@ja.com [4] => johnny'shashedpassword [password] => johnny'shashedpassword ) )
Notice: Undefined offset: 1 in wwwroot/includes/userhandler.php on
line 129
NULL
id
和 firstName
存储在一个数组中,键为 0
改变
$_SESSION['name'] = $loginUser['firstname'];
$_SESSION['id'] = $loginUser['id'];
到
$_SESSION['name'] = $loginUser[0]['firstname'];
$_SESSION['id'] = $loginUser[0]['id'];
但我看不出为什么 $loginUser
数组中有额外的维度。尝试重构 $loginUser
构建数组的方式
稍后在您调用的代码中 var_dump($loginUser[1]);
这是 returns 你的第二条错误信息,因为只有 $loginUser[0]
您的数组在另一个数组中。您可以使用以下代码行解决此问题:
$loginUser = current($loginUser);
此外,在使用 var_dump
时,我总是觉得使用 <pre />
标签很容易。这使您更容易看到数组是如何构建的。
示例:
echo "<pre>";
var_dump($loginUser);
echo "</pre>";
exit;
下面的代码return一些让我莫名其妙的结果...
if(is_array($loginUser)) {
$_SESSION['name'] = $loginUser['firstname'];
$_SESSION['id'] = $loginUser['id'];
print_r($_SESSION['name']);
print_r($loginUser);
var_dump($loginUser[1]);
exit();
header("Location: ../index.php?page=home");
}
那个returns:
Notice: Undefined index: firstname in wwwroot/includes/userhandler.php on line 124
Notice: Undefined index: id in wwwroot/includes/userhandler.php on line 125
Array ( [0] => Array ( [0] => 4 [id] => 4 [1] => Johnny [firstname] => Johnny [2] => Appleseed [lastname] => Appleseed [3] => ja@ja.com [email] => ja@ja.com [4] => johnny'shashedpassword [password] => johnny'shashedpassword ) )
Notice: Undefined offset: 1 in wwwroot/includes/userhandler.php on line 129
NULL
id
和 firstName
存储在一个数组中,键为 0
改变
$_SESSION['name'] = $loginUser['firstname'];
$_SESSION['id'] = $loginUser['id'];
到
$_SESSION['name'] = $loginUser[0]['firstname'];
$_SESSION['id'] = $loginUser[0]['id'];
但我看不出为什么 $loginUser
数组中有额外的维度。尝试重构 $loginUser
构建数组的方式
稍后在您调用的代码中 var_dump($loginUser[1]);
这是 returns 你的第二条错误信息,因为只有 $loginUser[0]
您的数组在另一个数组中。您可以使用以下代码行解决此问题:
$loginUser = current($loginUser);
此外,在使用 var_dump
时,我总是觉得使用 <pre />
标签很容易。这使您更容易看到数组是如何构建的。
示例:
echo "<pre>";
var_dump($loginUser);
echo "</pre>";
exit;