PHP: get_object_vars для неинициализированных типизированных полей для получения имен полей

#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 фактически получит содержимое.