如何检索Object数组值?

时间:2010-10-30 10:32:58

标签: php arrays object

所以问题是我是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。 但是我如何从静态方法调用中做同样的事情呢?

3 个答案:

答案 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;`