Ошибка анализа: синтаксическая ошибка, неожиданный T_OBJECT_OPERATOR

Я получаю следующую ошибку при попытке добавить некоторые данные из myXml.xml в строку: Ошибка синтаксиса: ошибка синтаксиса, неожиданный T_OBJECT_OPERATOR.

$xmlstr = file_get_contents('myXml.xml'); $xml = new SimpleXMLElement($xmlstr); foreach($xml->order as $order){ $replace = array(); $firstName = (string) $order->billing-address->first-name; $lastName = (string) $order->billing-address->last-name; } 

Я не могу предоставить свой XML напрямую, так как он содержит конфиденциальные данные.

Спасибо, Сэм

Solutions Collecting From Web of "Ошибка анализа: синтаксическая ошибка, неожиданный T_OBJECT_OPERATOR"

Знак - означает вычитание. Чтобы использовать его в именах свойств, вы должны использовать этот синтаксис:

 $firstName = (string) $order->{"billing-address"}->{"first-name"}; $lastName = (string) $order->{"billing-address"}->{"last-name"}; 

В общем, вероятно, лучше использовать firstName , billingAddress и т. Д. Как имена свойств, чтобы избежать этого. См. CamelCase . В этом случае, однако, вы не можете контролировать вход XML.