Есть ли функция для перечисления всех атрибутов объектов (таких как общедоступные методы и свойства) в PHP, подобных Python dir()
?
Функция PHP для перечисления всех атрибутов объектов
Ответ 1
PHP5 включает полный API отражения для выхода за рамки того, что старше get_class_methods и get_object_vars.
Ответ 2
Reflection::export(new ReflectionObject($Yourobject));
Ответ 3
Вы можете использовать API Reflection ReflectionClass::getProperties
и ReflectionClass::getMethods
для этого (хотя API, похоже, не очень хорошо документирован). Обратите внимание, что отражение PHP отражает только информацию времени компиляции, а не объекты времени выполнения. Если вы хотите, чтобы объекты выполнения также были включены в ваши результаты запроса, лучше всего использовать get_object_vars
, get_class_vars
и get_class_methods
. Разница между get_object_vars
и get_class_vars
заключается в том, что первая получает вам все переменные на данном объекте (включая динамически добавленные во время выполнения), в то время как последний дает вам только те, которые явно объявлены в классе.
Ответ 4
Вы можете использовать get_object_vars
для перечисления переменных объекта и get_class_methods
, чтобы перечислить методы данного класса.