是否可以防止在PHP中覆盖变量?我正在制作一个具有一些保留变量的系统,我不希望它们在某一点之后被其他东西替换。有可能的?如果没有,我该怎样做才能接近这个?
其中一些变量是实例化的类,所以我不能将它们定义为常量。
答案 0 :(得分:6)
答案 1 :(得分:5)
是的,它们被称为 constants 。
如果您不能使用它们,假设您运行的是最新的PHP版本,则可以使用 namespaces ,使用命名空间,您可以在不同的名称上使用2个相同名称的变量命名空间。这样你就不会发生碰撞。
答案 2 :(得分:3)
在这种情况下你能做的最好的事情(我知道)就是让它们成为类中的私有变量。然后,您必须使用getter和setter来分配值或构造。这样,其他人的代码就不太可能与你的代码发生冲突。
答案 3 :(得分:0)
在你的情况下找不到它是最简单的是不可能的,因为根本没有可用的代码,但是更好的选择可能是
如果需要,请将它们设为静态
答案 4 :(得分:0)
也许你可以实现冻结状态,如果类被冻结,则无法修改:
class Test
{
private $variable;
private $frozen = false;
public function freeze() {
$this->frozen = true;
}
public function setVariable($value) {
if ($this->frozen)
throw new Exception("...");
$this->variable = $value;
}
}