Есть ли способ отключить добавление свойств в класс из экземпляра класса.
Я имею в виду следующее:
Рассмотрим этот класс:
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__); } }