2011-01-10 16 views
5

Mögliche Duplizieren zuzugreifen:
How to access object properties with names like integers?Wie php geschweifte Klammer Objekteigenschaft

print_r($myObj) ergibt folgendes Ergebnis:

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

Wie kann ich mit der geschweiften Klammer Syntax mit Variable zum Zugriff auf die sub-object?

Ich habe versucht: $myObj->$id:

$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 

Antwort

3

Sie sollten die geschweiften Klammern ganz weglassen können. Ihre letzten 4 Beispiele zeigen jedoch, dass etwas nicht stimmt. Es scheint irgendwo entlang der Linien, $myObj wurde null oder zu einem anderen Nicht-Objekt-Wert gesetzt.