Мы уже рассмотрели отражение классов и отражение методов, а в этом материале рассмотрим отражение свойств или ReflectionProperty .

Reflection API. ReflectionProperty.

Мы уже рассмотрели отражение классов и отражение методов, а в этом материале рассмотрим отражение свойств или ReflectionProperty.

Итак, в файле index.php пропишем следующее:

<?php
  include 'user.php';

  $rp = new ReflectionProperty('Users\User', 'data');
  echo '<pre>';
  print_r(get_class_methods($rp));
  echo '</pre>';
?>

В конструктор класса ReflectionProperty первым параметром передаем название класса, а вторым - свойство в виде строки.

Если вы посмотрите, что выведет код выше, то увидите, что методов у класса ReflectionProperty не так уж и много.

<?php
  $rp->getName(); // возвращает имя свойства
  $rp->getValue(); // возвращает значение свойства
  $rp->setValue(); // устанавливает значение свойства
  $rp->isPublic(); // публичный? Если да, то вернется 1
  $rp->isProtected(); // защищенный?
  $rp->isPrivate(); // приватный?
  $rp->isStatic(); // статичный?
  $rp->isDefault(); // установлено значение по-умолчанию?
  $rp->getModifiers(); // возвращает модификаторы
  $rp->setAccessible(true); // делает свойство доступным
?>

Вот, собственно, и все, что можно рассказать про отражение свойства. Это очень простая, но полезная вещь.

Итак, на этом все. Спасибо за внимание!