(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 и окончательные элементы класса