PHP相同的变量名称

时间:2012-01-26 03:26:40

标签: php variables duplicates overwrite

对于PHP而言,我真的缺乏经验,希望有人可以在PHP中处理变量的方式为我澄清一些事情。

我有一个PHP Web应用程序,我创建并需要快速复制,所以我只需将此应用程序复制并粘贴到同一服务器上的新文件夹中。

我想知道是否有任何问题,如果2个不同的文件夹中的应用程序具有完全相同的变量名称?

我在考虑意外覆盖的情况。如果“不”,那么有人可以向我解释为什么没有问题吗?

2 个答案:

答案 0 :(得分:3)

不,只要两个应用程序目录真正独立且不包含彼此的文件,应用程序全局变量之间就不会发生任何冲突。运行PHP脚本时,启动它的HTTP请求可以被视为孤立事件。它与同一应用程序(甚至同时)和其他应用程序的所有其他请求分离并隔离。

每个脚本在执行开始时都会获得自己的变量名称空间,并且在脚本完成时终止并从内存中删除该环境。

现在,如果您正在使用$_SESSION并且两个应用程序对session_name()使用相同的值并运行相同的域名,则$_SESSION中的值可能会持续存在可能会在应用程序实例之间发生冲突这可以通过从默认PHPSESSID

更改其中一个应用程序的值来解决
// Application 1
session_name("APP1");
session_start();

// Application 2
session_name("APP2");
session_start();

你可能已经意识到了这一点,但我会说它是完整的。在可能的情况下,建议抽象出可以在两个应用程序实例之间共享并由两者包含的代码的各个方面。这与DRY principle保持一致,如果您必须对两个应用程序共享的代码进行修改,这将为您节省许多麻烦。

答案 1 :(得分:0)

在我的意见中,您可能会也可能不会在不同的文件夹中使用缩进变量名称。这取决于您的应用程序的功能。你需要对谷歌'全局和局部变量在php'中进行一些研究。

简而言之,是的,您可以将应用程序复制到新文件夹中,只需更新/重置路径(例如包含文件路径)和数据库连接strnigs(如果您的应用程序使用数据库来存储数据)。