(PHP 8 >= 8.4.0)
ReflectionProperty::isFinal — Определяет, окончательно ли свойство
Функцию пока не задокументировали; для знакомства доступен только список аргументов.
Метод возвращает информацию о том, пометили ли свойство ключевым словом
final.
Свойства с закрытой областью видимости для установки — private(set)
неявно становятся окончательными, как будто свойство определили со словом final.
У этой функции нет параметров.
Метод возвращает значение true, если свойство явно пометили ключевым словом final,
или если свойство получило неявное определение final из-за установки инструкцией private(set)
закрытой области видимости свойства для записи значения.
В остальных случаях метод возвращает значение false.
Пример #1 Пример определения окончательности свойства методом ReflectionProperty::isFinal()
<?php
class Example
{
public string $name;
final protected int $age;
public private(set) string $job;
}
$rClass = new \ReflectionClass(Example::class);
var_dump($rClass->getProperty('name')->isFinal());
var_dump($rClass->getProperty('age')->isFinal());
var_dump($rClass->getProperty('job')->isFinal());
?>Результат выполнения приведённого примера:
bool(false) bool(true) bool(true)
final и окончательные элементы класса