所以问题是我是OOP php的新手,我似乎无法找到如何从Object数组中检索特定值的答案。
所以我将我的请求运行到User类和方法find_by_sql:
$getAct = User::find_by_sql($sql);
我得到的回应是:
Array
(
[0] => User Object
(
[id] => 6
[permissions] => 0
[email] => email@example.com
[password] => 918f358a5cdf01e63d4609063d9A2bfec57f8455
[first_name] => Name
[last_name] => Surname
[city] => City
[gender] => m
[birth_date] => 1980-02-02
[act_code] => AAAAAAAAAAAAAAA
)
)
所以我的问题基本上是如何将[act_code]值设置为我的变量? 如果我使用非静态方法,那将很容易,因为我可以调用$ obj-> act_code。 但是我如何从静态方法调用中做同样的事情呢?
答案 0 :(得分:2)
你必须做
$getAct = User::find_by_sql($sql);
$actCode = $getAct[0]->act_code;
或更详细
$getAct = User::find_by_sql($sql); // returns an array
$user = $getAct[0]; // assign first element in array to $user
$actCode = $user->act_code; // read act_code member from User Object
正如您在结果转储中看到的那样,$getAct
包含一个包含一个元素的数组(由[0]
because Arrays are indexed with zero-based keys表示)。该元素是用户Object。
T_OBJECT_OPERATOR
->
($getAct[0]
)access/mutate/call Object members/methods。由于->get_act
将返回对象的句柄,因此您可以按{{1}}获取属性。
答案 1 :(得分:0)
将第一个数组元素的成员变量act_code
的值赋给变量:
$act_code = $getAct[0]->act_code;
答案 2 :(得分:0)
我不确定您使用的是什么ORM,但是如果您只想检索一条记录,只需将其限制为1.那应该返回一个User对象而不是一个User对象数组
$user = User::find_first_by_sql($sql);
$act = $user->act_code;`