如果您对最终未使用的变量使用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.1秒.这意味着性能明智,您仍然有理由使用更清洁的版本.