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