#php
#php
Вопрос:
Я начинаю PHP-проект, хотя обычно я разработчик Java. Я обнаружил, что PHP 7.4 наконец-то разрешает типизированные свойства. Итак, я создал класс, подобный так:
class SenderPdo
{
/* Metadata */
/** phpdoc */
public int $id;
}
Теперь я хотел получить все доступные имена полей. Обычно я бы сделал это с помощью get_object_vars(new SenderPdo())
и обернул это в вызов array_keys()
. Однако, поскольку get_object_vars
также будут извлекаться значения, я получаю (ожидаемое и документированное) исключение, что не все мои поля инициализированы.
Итак, есть ли способ получить все имена полей с помощью какого-либо отражения? Мне не удалось найти метод, аналогичный get_object_vars
который не считывает поля.
Альтернативой было бы инициализировать все свойства.
Комментарии:
1. php.net/manual/en/reflectionclass.getproperties.php
2.
get_class_vars('SenderPdo')
3. get_class_vars фактически получит содержимое.