为什么PHP不允许我访问此对象的属性

时间:2014-08-24 09:20:22

标签: php mysql arrays object

include 'businessLogic.php';
session_start();

$user_email = $_SESSION["user_email"];


//creates new object
$user_obj[] = new stdClass();

//returns a single user
$user_obj[] = getUser($user_email);


$user_id= $user_obj[0]->user_id;

$password= $user_obj[0]->password;

$email= $user_obj[0]->email;  

$date_of_birth= $user_obj[0]->date_of_birth;    

$gender= $user_obj[0]->gender;

$first_name= $user_obj[0]->first_name;

$last_name= $user_obj[0]->last_name;

这会对所有属性产生相同的错误

Undefined property: stdClass::$user_id in

2 个答案:

答案 0 :(得分:1)

仔细看看:

您将stdClass对象推送到数组$user_obj

//creates new object
$user_obj[] = new stdClass();

它将收到索引0。

然后你推送一个用户对象。

//returns a single user
$user_obj[] = getUser($user_email);

它在索引1处。

但是你试图在索引0处访问它。纠正它必须是:

$user_id = $user_obj[1]->user_id;
//...

答案 1 :(得分:0)

由于$user_obj是一个数组,因此使用new stdClass对象初始化其索引0。

$user_obj[] = new stdClass();

并在此语句中,函数返回的对象被分配给数组$user_obj的索引1。

//returns a single user
$user_obj[] = getUser($user_email);

您在此处进行的第一次初始化没有任何意义。它只是stdClass的空白对象。