2011-01-10 41 views
5

thể trùng lặp:
How to access object properties with names like integers?Làm thế nào để truy cập vào tài sản php xoăn đối tượng cú đúp

print_r($myObj) cho kết quả sau:

stdClass Object 
(
    [4021450] => stdClass Object 
    (
     [property1] => ooo 
     [property2] => xxx 
    ) 
    [3971601] => stdClass Object 
    (
     [property1] => 123 
     [property2] => 356 
    ) 
) 

Làm thế nào tôi có thể sử dụng cú pháp cú đúp xoăn với biến để truy cập vào sub-object?

tôi đã cố gắng:

$myObj->'3971601';      // Parse error: syntax error 
$myObj->{'3971601'};     // Works 
$id = 3971601; $myObj->{$id};   // Notice: Trying to get property of non-object 
$id = 3971601; $myObj->{''.$id};  // Notice: Trying to get property of non-object 
$arr = (array)$myObj; $arr[3971601]; // Notice: Undefined offset: 3971601 
$arr = (array)$myObj; $arr['3971601']; // Notice: Undefined index: 3971601 

Trả lời

3

Bạn sẽ có thể bỏ qua các dấu ngoặc nhọn hoàn toàn: $myObj->$id. 4 ví dụ cuối cùng của bạn, tuy nhiên, cho thấy một cái gì đó là không ổn. Có vẻ như ở đâu đó dọc theo các dòng, $myObj được đặt null hoặc một số giá trị không phải đối tượng khác.

Các vấn đề liên quan