Есть ли способ отключить добавление свойств в класс из экземпляра класса?
Есть ли способ отключить добавление properties в класс из экземпляра класса.
Что я имею в виду:
Рассмотрим этот класс:
class a {
private $v1;
public $v2;
function func(){
...
}
}
Если я это сделаю:
$ins = new a;
$ins->temp = "A variable created from outside the class! C*ap!";
var_dump($ins);
Выход:
object(a)#1 (3) {
["v1":"a":private]=>
NULL
["v2"]=>
NULL
["temp"]=>
string(48) "A variable created from outside the class! C*ap!"
}
Can this be disabled?
`
Ответы
Ответ 1
Возможно, вы можете реализовать __set()
и исключить из него исключение:
class a {
private $v1;
public $v2;
public function __set($name, $value) {
throw new Exception("Cannot add new property \$$name to instance of " . __CLASS__);
}
}