2011-01-10 5 views
5

Можно создать дубликат:
How to access object properties with names like integers?Как получить доступ к PHP фигурной объекта скобки свойства

print_r($myObj) дает следующий результат:

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

Как я могу с помощью вьющегося синтаксиса скобки с переменной для доступа к sub-object?

Я пробовал:

$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 

ответ

3

Вы должны быть в состоянии опустить фигурные скобки полностью: $myObj->$id. Однако ваши последние 4 примера указывают на то, что что-то не так. Кажется, что где-то вдоль линий, $myObj был установлен null или на какое-то другое значение, отличное от объекта.