从技术上讲,重用变量会(微不足道)更快。不过,这将使可测量的性能差异为零。
虽然硬件变得更便宜,时间也变得更贵,但您更应该寻找可维护的代码。从长远来看,这将为您节省头痛和贵公司的资金。
仅在可以获得足够性能增益以抵消您投入其中的工作量(金钱)的地方进行优化。
在云和服务器集群的今天,稍微优化一点的代码最终很可能不会使项目变得更慢。您的项目更有可能运行得一样快,但会花费更多的 cpu 周期,因此您的托管服务提供商会花费更多的钱。不过,这一微小的额外成本很可能不会影响长达数小时的性能提升优化。当然,除非你问这个是因为你正在为亚马逊开发。(即使在像亚马逊这样的地方,每天有数百万次点击,重用变量也不会带来任何显着的性能提升)
回到你的问题;我相信你应该只重用一个变量,当它包含原始状态的更新内容时。但总的来说,这种情况不会发生太多。
我认为在以下情况下,重用$content
var 是合理的选择
function getContent()
{
$cacheId = 'someUniqueCacheIdSoItDoesNotTriggerANotice';
$content = someCacheLoadingCall( $cacheId );
if (null === $content) {
$content = someContentGeneratingFunction();
someCacheSavingCall( $cacheId, $content);
}
return $content;
}
描述性代码
另外,请善待未来的自己,始终为变量使用描述性名称。你会为此感谢自己。当你与自己达成协议,除非它在逻辑上有意义,否则永远不要重用变量,你就朝着可维护代码又迈出了一步。
想象一下,从现在起的 6 个月内,在您完成另一个大项目 - 或更小的项目之后 - 您接到一个重要客户的电话,说旧项目中存在错误。神圣的!@#!必须马上解决!您打开并到处看到这样的功能;
function gC()
{
$cI = 'someUniqueCacheIdSoItDoesNotTriggerANotice';
$c = sclc( $cI );
if (null === $c) {
$c = scg_f();
scsc( $cI, $c);
}
return $c;
}
使用描述性变量和函数名称以及获得具有良好代码完成功能的代码编辑器要好得多,因此您仍然可以尽可能快地进行编码。现在,我会推荐Aptana Studio或Zend Studio,Zend 的代码完成要好一些,但 Aptana 已被证明更稳定。
PS。我不知道你的编程水平,如果我喋喋不休,抱歉。如果与您无关,我希望能帮助其他可能阅读此内容的人:)