如果对不使用的变量使用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()在一百万次调用中以0.1s的速度结束.这意味着性能是明智的,您仍然有理由使用更干净的版本.