【发布时间】:2011-01-14 01:15:42
【问题描述】:
对不起,我是一个初学者,我无法确定这是一个多么好的问题,也许对你们中的某些人来说这听起来很明显。
如果我们的使用下面这两个是一样的,哪个更好?
function doSomething ($var1,$var2,..){
...
}
或
function doSomething (){
global $var1,$var2,..;
...
}
通过我们的使用,我的意思是我知道在第二种情况下,我们还可以更改全局变量的值。但是如果我们不需要这样做,那么编写这个函数的更好方法是什么?传递变量是否比在函数中声明全局变量占用更少的内存?
【问题讨论】:
-
除了以下答案中给出的不使用“全局”的原因之外,还要考虑代码的可重用性。例如,如果您有一个函数实用程序文件,那么在包含该文件的任何脚本中,您必须确保您的变量命名与这些函数中的全局变量匹配。这可能会出现问题,尤其是对于复杂的脚本。或者,如果你想通过“插入”一个已经存在的函数来重构脚本,那么你需要检查所有脚本的代码,甚至是与函数无关的代码,以确保没有命名冲突。跨度>
-
我想补充一点,您也可以考虑在函数外部添加全局变量声明,但这仍然是不好的做法,因为其他人可能不知道他们是否正在导入您的代码。他们可能不知道他们正在导入该全局变量并创建另一个具有相同名称的变量,从而覆盖您的原始变量。
标签: php function global-variables performance