我有一个类,它包含一个__geter,它将返回一个计算值。
我班上的__geter可能如下所示:
public function __get($name) {
switch ($name) {
case "OnePlusOne":
return (1 + 1);
break;
default:
return null;
break;
}
}然后我用我的课:
$aclass = new MyClass();
$aclass->OnePlusOne = 5;
echo ($aclass->OnePlusOne); /* returns 5 instead of 2 */如何确保不可能以这种方式更改我的类?
发布于 2021-08-05 20:26:52
您可以添加一个__set()方法,以防止设置已定义为计算的任何属性。
public function __set($name, $value)
{
$computedProperties = ["OnePlusOne"];
if (!in_array($name, $computedProperties)) {
$this->$name = $value;
}
}https://stackoverflow.com/questions/68672327
复制相似问题