有没有办法禁止从类的实例中将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!"
}
这会被禁用吗?`
解决方法:
也许你可以实现__set()并从那里抛出异常:
class a {
private $v1;
public $v2;
public function __set($name, $value) {
throw new Exception("Cannot add new property \$$name to instance of " . __CLASS__);
}
}
标签:php,properties,oop
来源: https://codeday.me/bug/20190927/1823595.html