如果您对最终未使用的变量使用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();
}
}
Run Code Online (Sandbox Code Playgroud)
我非常清楚使用第二种方法会使维护此代码变得更加困难,并且通常首选将所有全局变量放在函数的开头,因此:忽略两个函数的可维护性和代码样式的差异,在开销方面,这两者有什么区别?
如果存在,它将不会(人类)可测量,除非你真的称呼这个函数数百万次.即使它是具有该属性的递归函数,我仍然不会将您的第二种方法用于您已经提出的可维护性方面.
编辑:为了论证,我实际上去了这个基准测试,bar()
结果比一百万次调用慢了0.1秒.这意味着性能明智,您仍然有理由使用更清洁的版本.