首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以从类外部重写__get。

可以从类外部重写__get。
EN

Stack Overflow用户
提问于 2021-08-05 19:11:56
回答 1查看 30关注 0票数 1

我有一个类,它包含一个__geter,它将返回一个计算值。

我班上的__geter可能如下所示:

代码语言:javascript
复制
public function __get($name) {
    switch ($name) {
        case "OnePlusOne":
            return (1 + 1);
            break;

        default:
            return null;
            break;
    }
}

然后我用我的课:

代码语言:javascript
复制
$aclass = new MyClass();
$aclass->OnePlusOne = 5;
echo ($aclass->OnePlusOne); /* returns 5 instead of 2 */

如何确保不可能以这种方式更改我的类?

EN

回答 1

Stack Overflow用户

发布于 2021-08-05 20:26:52

您可以添加一个__set()方法,以防止设置已定义为计算的任何属性。

代码语言:javascript
复制
public function __set($name, $value)
{
    $computedProperties = ["OnePlusOne"];
    if (!in_array($name, $computedProperties)) {
        $this->$name = $value;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68672327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档