PHP Печать ключей от объекта? - PullRequest
17 голосов
/ 27 апреля 2011

У меня есть объект BIRD, затем есть [0] - [10], и у каждого числа есть подзаголовок, такой как «жук», «жук» или «мошка», и значение для каждого из них.

Я хочу напечатать

BIRD 
    [0]
       bug = > value 

Я нигде не могу понять, как это сделать - есть разговоры о PUBLIC, PRIVATE и CLASS, и вот где я падаю

Ответы [ 4 ]

59 голосов
/ 18 января 2013

Вы можете легко сделать это, набрав тип объекта:

$keys = array_keys((array)$BIRD);

27 голосов
/ 17 марта 2014

Аналогично ответу brenjt, здесь используется get_object_vars PHP вместо приведения типа объекта.

$array = get_object_vars($object);
$properties = array_keys($array);
1 голос
/ 20 мая 2019

Если «объект» на самом деле является ассоциативным массивом, а не истинным объектом, тогда array_keys() даст вам то, что вам нужно, без предупреждений или ошибок.

С другой стороны, если ваш объект является истинным объектом, вы получите предупреждение, если попытаетесь использовать array_keys() напрямую.

Вы можете извлечь пары ключ-значение из объекта в виде ассоциативного массива с помощью get_object_vars(), затем вы можете получить ключи из этого с помощью array_keys():

$keysFromObject = array_keys(get_object_vars($anObject));
1 голос
/ 27 апреля 2011

Я могу ошибаться, но попробуйте использовать array_keys, используя объект в качестве параметра.Я считаю, что это возможно в php.http://php.net/manual/en/function.array-keys.php

В любом случае, читайте об отражении.

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