(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)