为什么PHP不允许我访问这个对象';s属性

为什么PHP不允许我访问这个对象';s属性,php,mysql,arrays,object,Php,Mysql,Arrays,Object,这会对所有属性产生相同的错误 未定义属性:stdClass::$user\u id in仔细查看: 将stdClass对象推入数组$user\u obj include 'businessLogic.php'; session_start(); $user_email = $_SESSION["user_email"]; //creates new object $user_obj[] = new stdClass(); //returns a single user $user_obj

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

未定义属性:stdClass::$user\u id in

仔细查看:

stdClass
对象推入数组
$user\u obj

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;
它将接收索引0

然后推送一个用户对象

//creates new object
$user_obj[] = new stdClass();
它位于指数1

但您尝试在索引0处访问它。正确答案必须是:

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

由于
$user_obj
是一个数组,它的索引0用
新的stdClass
对象初始化

$user_id = $user_obj[1]->user_id;
//...
在该语句中,函数返回的对象被分配给数组
$user\u obj
的索引1

$user_obj[] = new stdClass();

在这里进行的第一次初始化没有任何意义。它只是
stdClass

var\u dump($user\u obj)
摆脱了$user\u obj[]=new stdClass();并且仍然得到通知:尝试获取C中非object的属性:\wam@TomerHenn
getUser($user\u电子邮件)显然不返回对象。什么是
var_转储(getUser($user_email))显示?它返回此数组(大小=1)0=>数组(大小=1)0=>对象(stdClass)[3]公共“用户id”=>字符串“1”(长度=1)公共“密码”=>字符串“12345”(长度=5)公共“电子邮件”=>字符串aaa@aaa.com“(长度=11)公共”出生日期“=>字符串“0000-00-00”(长度=10)public'gender'=>string'male'(长度=4)public'first_name'=>string'kipi'(长度=4)public'last_name'=>string'ben kipod'(长度=9)尝试
$user\u id=$user\u obj[0][0]->user\u id仍然没有将$user\u obj识别为对象并抛出通知:试图在第16行的C:\wamp\www\social\u network\editUser.php中获取非对象的属性
//returns a single user
$user_obj[] = getUser($user_email);