Lieber Alex_,
ich sehe da ein paar Ungereimtheiten in Deinem Code. Vielleicht kommt das aber auch von unvollständigem Copy&Paste?
Beispiel 2:
$api = new API(); $daten $api->getDaten(); // get Object $name = 'benutzer->name'; $daten->$name; // Testausgabe funktioniert nicht
[...] Notice: Undefined property: stdClass::$benutzer->name in ...
Wo ist da das Istgleichzeichen bei $daten = $api->getDaten()
? Das sollte eigentlich einen Syntaxfehler provozieren...
Du willst $daten->{'benutzer'}->{'name'}
haben, nicht jedoch $daten->{'benutzer->name'}
! Da ich Dein Projekt jetzt nicht kenne, kann ich Dir nicht weiter raten. Vielleicht benötigst Du zwei Variablen wie hier:
$daten = $api->getDaten();
$subO = 'benutzer';
$prop = 'name';
echo $daten->$subO->$prop;
Vielleicht aber auch willst Du über das Unterobjekt iterieren?
$daten = $api->getDaten();
$key = 'benutzer';
$subObj = $daten->$key;
foreach (get_object_vars($subObj) as $prop => $val) {
echo "subObj->$prop = '$val'\r\n"; // $val of type != object/class
}
Vielleicht nützt Dir das irgendwie. Code wie immer ungetestet!
Liebe Grüße,
Felix Riesterer.