我正在寻找一种方法来声明一个初始化后不能更改的成员变量(它可以设置一次,但不会重置)。PHP常量成员变量
我不是在寻找一个类常量,而是一个per-instance成员变量。无论如何要在PHP中做到这一点?
我正在寻找一种方法来声明一个初始化后不能更改的成员变量(它可以设置一次,但不会重置)。PHP常量成员变量
我不是在寻找一个类常量,而是一个per-instance成员变量。无论如何要在PHP中做到这一点?
一个解决方案可以是:
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结构来实现这一目标,所以你必须写自己实施解决具体问题。您无法通过继承进行检查和/或保护来避免覆盖变量。
您可以使用关键字final -
final $variable
你问的问题或提供的答案?这应该是一个评论。 – vascowhite
如果我只是发表评论,我会把它放在评论栏。 – vikingcode
你的措辞使它看起来像一个问题。 – vascowhite
到目前为止你做了什么?或者你想让我们为你做你的工作? – JakeGould
@JakeGould:什么*工作*?这听起来不像一个家庭作业问题 - 至少对我来说。 –
他们已经做了什么?原始海报试图做什么?如果没有这些,那么原始海报会期望任何人说或做什么? – JakeGould