(PHP 8 >= 8.4.0)
ReflectionProperty::isVirtual — Определяет, виртуально ли свойство
Сигнатура функции не содержит параметров.
   Метод возвращает значение true, если свойство виртуально, иначе возвращает значение false.
  
Пример #1 Пример определения виртуальности свойства методом ReflectionProperty::isVirtual()
<?php
class Example
{
    // Ни один из хуков не ссылается на свойство,
    // поэтому свойство виртуально
    public string $name {
        get => "Имя";
    }
    // Этот хук ссылается на свойство по имени,
    // поэтому свойство невиртуально
    public int $age {
        set {
            if ($value <= 0) {
               throw new \InvalidArgumentException();
            }
            $this->age = $value;
        }
    }
    // Свойства без хуков невозможно сделать виртуальными
    public string $job;
}
$rClass = new \ReflectionClass(Example::class);
var_dump($rClass->getProperty('name')->isVirtual());
var_dump($rClass->getProperty('age')->isVirtual());
var_dump($rClass->getProperty('job')->isVirtual());
?>Результат выполнения приведённого примера:
bool(true) bool(false) bool(false)
