В PHP версии 8.1 была добавлена новая возможность — модификатор readonly для свойств класса. Этот модификатор позволяет создавать свойства, которые можно установить только один раз, и после этого они становятся неизменяемыми. Это особенно полезно для создания объектов со значениями, которые не должны изменяться после инициализации объекта.
Свойство readonly должно быть инициализировано во время создания экземпляра класса. Это можно сделать либо непосредственно в объявлении свойства, либо в конструкторе класса.
После того, как свойство readonly было установлено, его нельзя изменить. Попытка изменить такое свойство приведет к ошибке.
Как и другие свойства в PHP 8+, readonly свойства могут быть строго типизированы.
Этот модификатор полезен для определения свойств, которые должны оставаться константными после инициализации объекта, например, идентификаторы или конфигурационные параметры, которые не должны меняться в течение жизненного цикла объекта.
Пример использования readonly в классе:
class MyClass {
public readonly string $name;
public function __construct(string $name) {
$this->name = $name;
}
}
$obj = new MyClass("Alex");
# Выведет: Alex
echo $obj->name;
# Вызовет ошибку, так как свойство readonly
$obj->name = "Another Name";
Комментарии
0Нашли ошибку или хотите дополнить материал?