如果您在最终没有使用的变量上使用 global 关键字,会不会有问题?比较:
function foo() {
global $fu;
global $bah;
if (something()) {
$fu->doSomething();
} else {
$bah->doSomething();
}
}
function bar() {
if (something()) {
global $fu;
$fu->doSomething();
} else {
global $bah;
$bah->doSomething();
}
}
我很清楚使用第二种方法会使维护此代码变得更加困难,并且通常首选将所有全局变量放在函数的开头,因此:忽略可维护性和代码样式方面的差异在这两个功能中,这两者在开销方面有区别吗?
最佳答案
如果存在,它将无法(人工)测量,除非您确实调用此函数数百万次。即使它是具有该属性的递归函数,我仍然不会将您的第二种方法用于您已经提出的可维护性方面。
编辑:为了论证,我实际上进行了基准测试,bar()
在超过 100 万次调用时最终慢了 0.1 秒。这意味着在性能方面,您仍然有理由使用更清洁的版本。
关于php - 使用全局会产生任何开销吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/181285/