PHP получает ключ от объекта, где ключ является целым - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть объект в PHP

object(SimpleXMLElement)[974]
   public '@attributes' => 
     array (size=1)
     'index' => string 'vDEF' (length=4)
   public 0 => string 'Link Title' (length=10)

Как я могу вернуть значение public 0?

Я пытался

 $obj[0]
 $obj->0
 $obj->[0]

Ни один из которых не дает мнерезультат ..

Использование PHP 5.7

Обновлен код для получения массива

array (size=2)
   '@attributes' => 
   array (size=1)
      'index' => string 'vDEF' (length=4)
      0 => string 'Link Title' (length=10)

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Этот вывод отладки генерируется вспомогательным методом Laravel dd из следующего XML:

<root index="vDEF">Link Title</root>

Вам не нужно использовать Reflection или перебирать свойства объекта для доступа к Заголовок ссылки.Это просто текстовое содержимое вашего объекта SimpleXMLElement, и вы можете получить к нему доступ, просто приведя объект к строке:

echo (string) $object;

Использование Reflection, в частности, является очень медленным процессом, и его следует избегать, когда это возможно.

SimpleXML предоставляет полный API для доступа к атрибутам и элементам XML-документа, но когда вы начинаете проверять его с помощью var_dump / dd / etc, это не всегда очевидно.Прочитайте базовую документацию для библиотеки , и будет простой вариант.

0 голосов
/ 24 сентября 2018

возможно

$reflection = new \ReflectionClass($object); $property = $reflection->getProperty(0);

или

$reflection = new \ReflectionClass($object); $property = $reflection->getProperty('0');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...