2013-11-10 220 views
2

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

我不是在寻找一个类常量,而是一个per-instance成员变量。无论如何要在PHP中做到这一点?

+0

到目前为止你做了什么?或者你想让我们为你做你的工作? – JakeGould

+0

@JakeGould:什么*工作*?这听起来不像一个家庭作业问题 - 至少对我来说。 –

+0

他们已经做了什么?原始海报试图做什么?如果没有这些,那么原始海报会期望任何人说或做什么? – JakeGould

回答

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结构来实现这一目标,所以你必须写自己实施解决具体问题。您无法通过继承进行检查和/或保护来避免覆盖变量。

-2

您可以使用关键字final -

final $variable 
+1

你问的问题或提供的答案?这应该是一个评论。 – vascowhite

+0

如果我只是发表评论,我会把它放在评论栏。 – vikingcode

+0

你的措辞使它看起来像一个问题。 – vascowhite