2

我正在寻找一种方法来声明一个一旦初始化就不能更改的成员变量(它可以设置一次,但永远不会重置)。

我不是在寻找类常量,而是在寻找每个实例的成员变量。无论如何在PHP中可以做到这一点?

4

2 回答 2

1

解决方案可以是:

class SuperClass {

    private $_something;

    public final SetSomething(SomethingCls $something) {
        if ($this->_something != NULL) {
            throw new \Exception();
        }

        $this->_something = $something;
    }

    public final GetSomething() {
        return $this->_something;
    }

}

事实是没有任何 PHP 结构可以实现这一点,因此您必须编写自己的实现来解决特定问题。如果没有通过继承进行一些检查和/或保护,就无法保护变量不被覆盖。

于 2013-11-10T08:36:02.300 回答
-2

您可以使用final关键字:-

final $variable
于 2013-11-10T07:38:47.570 回答