suit: simpleXML Children() mit Index ansprechen

Beitrag lesen

Von Arrays, die von Funktionen zurückgegeben werden, können unter PHP nicht direkt die Elemente angesprochen werden. Das Ablegen in einer Zwischenvariable ist für den Fall erforderlich.

In SimpleXML ist das noch einen tick komplizierter da sich der geparste XML-Baum aus Objekten und Arrays zusammensetzt - da kanns schnell passieren, dass man ein Array mit einem Objekt verwechselt und so eine zwischenvariable mit einem Objekt befüllt.

Während sich das Objekt mit print_r wunderbar ausgeben lässt oder man mit echo einen Wert bekommt, kann das an anderer Stelle schon zu Problemen führen.

Wenn man die Werte z.B. in einer Funktion einsetzt, die einen bestimmten Datentyp erwartet und nicht einfach so selbsttätig castet, kann es sein, dass das Typecasting fehlschlägt:

Beispiel:
date('c', $xml->foo[0]->timestamp);

Würde fehlschlagen, folgendes aber nicht:
date('c', (string)$xml->foo[0]->timestamp);
date('c', (int)$xml->foo[0]->timestamp);