2012-02-11 3 views
0

Можно создать дубликат:
SimpleXML Reading node with a hyphenated nameДоступ к отдельным Свойства объекта

Я потянув некоторые данные для игрового турнира через API на этой странице - http://www.sandwichmuffin.com/muffinleague/

я был возможность доступа к некоторым свойствам, видимым на выходе функции print_r, например, для эхо-имени турнира, которое я просто использовал

echo $tournaments->tournament[0]->name; 

Однако у меня с трудом делается то же самое для «description-source». Есть ли другой способ повторить это свойство? По моему мнению, почти все, что я пробовал, привело к 0 или ложному.

Редактировать: Они утверждают, что это (http://challonge.com/api/tournaments) является форматом XML, возвращаемым из моего запроса API, если это помогает.

+2

'$ obj -> {'description-source'}' потому что '-' не разрешено, и PHP будет думать, что вы хотите сделать' $ obj-> description - source' – Gordon

+0

большое вам спасибо! – dustaMaphone

ответ

2
$tournaments->tournament[0]->{"description-source"} 
+0

большое спасибо, мой друг^_^высоко оценил (Mark + Gordon) – dustaMaphone

0

Вы не можете иметь минус/дефис в названии свойства. Попробуйте:

$descriptionSource = 'description-source'; 
echo $tournaments->tournament[0]->$descriptionSource; 

Надеется, что это помогает :)

EDIT

Разъяснение: вы не можете иметь минус/дефис в имени свойства без возможности избежать этого (как показано в других ответы) или присвоение имени свойства переменной (как показано в моем примере).

+1

downvoter: не забывайте? –

+0

Вы можете иметь '-' в перегруженных именах свойств. Вы обязательно должны инкапсулировать свойство в '{}' хотя. Хотя эта идея будет работать, она не является фактической. – cspray

+0

Хорошо, я имел в виду, что имя сырой собственности «как есть» не позволяет дефис; i.e: '$ турниры-> турнир [0] -> description-source'. Очевидно, я должен был быть более ясным. Я обновляю свой ответ, поэтому нет никакой двусмысленности. –

0

"описание источник" не является законным именем методы PHP, так что вы можете назвать как этот турнир

эха $ tournaments-> [0] -> { "описание источника"};

Смежные вопросы