Оператор
readonly устанавливает значения свойствам только один раз,
при инициализации и запрещает далее менять это значение, верно?
Ради интереса попробовал сделать такое с объектом.
Но почему-то, я могу устанавливать дефолтное значение свойству классу
"say",
хотя
readonly запрещает такое делать.
Что происходит в коде ниже, что здесь
меняет readonly в классе
"say"?
class User {
function __construct(public readonly object $say){} // установил readonly аргументу конструктора
function text(){
echo "i say:". $this->say->hi();
}
}
class say{
public $name ="da"; // дефолтное значение
function hi(){
return "hi";
}
}
$obj = new User(new say);
$obj->text();