Есть ли способ отключить добавление свойств в класс из экземпляра класса.
Я имею в виду следующее:
Рассмотрим этот класс:
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);
Выход:
объект (a) # 1 (3) { [ "V1": "а": частная] => НОЛЬ [ "У2"] => НОЛЬ [ "Темп"] => string (48) «Переменная, созданная вне класса! C * ap!» }
Can this be disabled?
`
Возможно, вы можете реализовать __set()
и исключить из него исключение:
class a { private $v1; public $v2; public function __set($name, $value) { throw new Exception("Cannot add new property \$$name to instance of " . __CLASS__); } }