PHP двоеточие в имени свойства

у меня есть переменная $entry, которая установлена в:

stdClass объект ( [im: name] => объект stdClass ( [label] => удивительный выключатель ) так далее.

Как я могу получить доступ к значению "невероятный Разрушитель"?

Я попытался определить константу:

define("IMNAME", 'im:name');

но, используя:

foreach ($json_output->feed->entry as $entry) {
if (isset($entry->IMNAME->label))

возвращает FALSE.

проблема, похоже, в двоеточии. Для ключа без двоеточия код будет вернуть true.

4 ответов


вы можете использовать синтаксис свободной формы с фигурными скобками для "специальных" имен свойств:

if (isset($entry->{'im:name'}->label))

фигурные скобки!

echo $Node->{'im:name'}->label;

в основном, мы используем переменные.


обертывание IMNAME в фигурные скобки:

if (isset($entry->{IMNAME}->label))

это связано с тем, что имена переменных в PHP не могут содержать двоеточие или двойное двоеточие. См.https://php.net/manual/language.variables.basics.php для получения дополнительной информации.

тут

$entry->{IMNAME}->label

работы?