PHP中不允许变量覆盖
可以防止PHP中的变量被覆盖吗?我正在制作一个有一些保留变量的系统,我不希望在某一点之后用其他变量替换它们。有可能吗?如果没有,我可以做些什么来接近这一点PHP中不允许变量覆盖,php,variables,overwrite,Php,Variables,Overwrite,可以防止PHP中的变量被覆盖吗?我正在制作一个有一些保留变量的系统,我不希望在某一点之后用其他变量替换它们。有可能吗?如果没有,我可以做些什么来接近这一点 其中一些变量是实例化类,所以我不能将它们定义为常量。看看这个问题。另外,PHP手册中有关的信息可能会有所帮助。在这种情况下,您所能做的最好的事情(我知道)就是在类中使它们成为私有变量。然后必须使用getter和setter来分配值或构造。这样,其他人的代码就不太可能与你的代码冲突。在你的情况下,不可能找到最简单的方法,因为根本没有可用的代码,
其中一些变量是实例化类,所以我不能将它们定义为常量。看看这个问题。另外,PHP手册中有关的信息可能会有所帮助。在这种情况下,您所能做的最好的事情(我知道)就是在类中使它们成为私有变量。然后必须使用getter和setter来分配值或构造。这样,其他人的代码就不太可能与你的代码冲突。在你的情况下,不可能找到最简单的方法,因为根本没有可用的代码,但在其他情况下,更好的选择可能是
如果需要,将它们设置为静态的是的,它们被称为
如果您不能使用它们,假设您运行的是最新的PHP版本,那么您可以使用,使用名称空间,您可以在不同的名称空间上有两个相同名称的变量。这样您就不会发生冲突。也许您可以实现类似于冻结状态的功能,如果类已冻结,则无法修改:
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;
}
}
更换的是什么?是否从不受信任的用户内容导入变量?或者这仅仅是为了保护自己不受未来自我伤害的一般概念?是的,从技术上讲,我是在为自己辩护,要毁掉一切,但不仅仅是我,因为我不是唯一一个编写脚本的人,所以主变量可能会在某个时候发生冲突。我不想为此键入完整的答案,所以我只想说:避免全局变量!使用类和适当的封装技术。静态也是一个选项,。但所有对象的值都必须相同。他说他不能使用ConstantsThank,我查看了文档,名称空间在未来将对我有很大帮助,但不幸的是,我必须在许多服务器上处理不同的PHP版本,我不能假设所有这些都可以升级到最新版本,所以我将选择另一个选项,他说他不能使用常量,尽管关于静态保护的链接可能会有帮助。我知道,这就是为什么我先链接到另一个问题。不过,阅读常量可能仍然有帮助。(特别是手册页面上的一些示例代码)它完美地满足了我的需要。谢谢