4

Is it possible to prevent variables from being overwritten in PHP? I am making a system that has some reserved variables and I don't want them to be replaced with something else after a certain point. It is possible? If not, what can I do to approach something close to this?

Some of these vars are instantiated classes so I can't define them as constants.

4

5 回答 5

7

看看这个问题。此外,PHP 手册中有关常量的信息可能会有所帮助。

于 2012-07-26T19:00:22.110 回答
5

是的,它们被称为常量

如果你不能使用它们,假设你正在运行最新的 PHP 版本,你可以使用namespaces,使用命名空间,你可以在不同的命名空间上拥有 2 个同名的变量。这样你就不会发生碰撞。

于 2012-07-26T19:00:41.213 回答
3

在这种情况下(我知道)你能做的最好的事情就是在类中将它们设为私有变量。然后,您必须使用 getter 和 setter 来分配值或构造。这样,其他人的代码就不太可能与您的代码发生冲突。

于 2012-07-26T19:00:25.853 回答
0

不可能找出在您的情况下它是最简单的,因为根本没有可用的代码,但更好的选择可能是

  1. 将它们作为私有成员变量隐藏在一个类中。
  2. 通过吸气剂暴露它们。

如果需要,使它们成为静态的

于 2012-07-26T19:00:39.637 回答
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;
    }
}
于 2012-07-26T19:10:57.720 回答