gpt4 book ai didi

php - 有没有办法禁止从类的实例向类添加属性?

转载 作者:行者123 更新时间:2023-12-03 01:04:25 24 4
gpt4 key购买 nike

有没有办法禁用添加 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 - 有没有办法禁止从类的实例向类添加属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8631133/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com