加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP:不可变的公共成员字段

发布时间:2020-12-13 16:40:39 所属栏目:PHP教程 来源:网络整理
导读:我需要创建一个简单的成员字段容器的不可变类.我希望其字段在其构造函数中被实例化一次(这些值应该作为构造函数的参数给出).我希望这些字段是公开的,但是不可改变.我可以使用 Java在每个字段之前使用final关键字.在 PHP中怎么做? 您应该使用__set和__get魔
我需要创建一个简单的成员字段容器的不可变类.我希望其字段在其构造函数中被实例化一次(这些值应该作为构造函数的参数给出).我希望这些字段是公开的,但是不可改变.我可以使用 Java在每个字段之前使用final关键字.在 PHP中怎么做?
您应该使用__set和__get魔术方法,并将该属性声明为protected或private:
class Example
{
    private $value;

    public function __construct()
    {
        $this->value = "test";
    }

    public function __get($key)
    {
        if (property_exists($this,$key)) {
            return $this->{$key};
        } else {
            return null; // or throw an exception
        }
    }

    public function __set($key,$value)
    {
        return; // or throw an exception
    }
}

用法:

$example = new Example();
var_dump($example->value);
$example->value = "invalid";
var_dump($example->value);

输出:

string(4) "test"
string(4) "test"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读