开发者

How to retrieve Object array value?

The thing is that I'm new to OOP PHP and I seem can't find the answer to how to retrieve a specific value from array of objects.

When I run request to the User class and method find_by_sql:

$getAct = User::find_by_sql($sql);

The response I get is:

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
        )

)

My question basically is how can I set [act_code] value to my variable? If I would use the non-static method it 开发者_StackOverflowwould be easy since I could just call $obj->act_code. But how do I do same from a static method call?


You have to do

$getAct  = User::find_by_sql($sql);
$actCode = $getAct[0]->act_code;

or more verbose

$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

As you can see by your result dump, $getAct contains an Array with one element (as indicated by [0] because Arrays are indexed with zero-based keys). The element is a User Object.

You access/mutate/call Object members/methods with the T_OBJECT_OPERATOR (->). Since $getAct[0] will return a handle to the object, you can then fetch the property by ->get_act.


To assign the value of the first array element's member variable act_code to a variable:

$act_code = $getAct[0]->act_code;


I'm not sure what ORM you are using, but if you want to retrieve only one record, just limit it to 1. That should return a User object instead of an array of User objects

$user = User::find_first_by_sql($sql);
$act  = $user->act_code;`
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜