首先,如果这只是编码风格问题,我深表歉意。我想知道为每个属性或函数分配一个新变量以重新分配现有变量的利弊。这是假设您不需要访问范围之外的变量。
这就是我的意思(注意名称 $var0,...
只是为了简单起见),
选项1:
$var0= array('hello', 'world');
$var1="hello world";
$var2=//some crazy large database query result
$var3=//some complicated function()
对比
选项#2:
$var0= array('hello', 'world');
$var0="hello world";
$var0=//some crazy large database query result
$var0=//some complicated function()
最佳答案
从技术上讲,重用变量会(微不足道)更快。不过,这将使可测量的性能差异为零。
虽然硬件变得更便宜,时间也变得更贵,但您更应该寻找可维护的代码。从长远来看,这将为您节省头痛和贵公司的资金。
Only optimize where enough performance gain can be made to offset the amount of work (money) you are putting into it.
在云和服务器集群的今天,稍微优化一点的代码最终很可能不会使项目变得更慢。您的项目更有可能运行得一样快,但会花费更多的 cpu 周期,因此您的托管服务提供商会花费更多的钱。不过,这一微小的额外成本很可能不会影响长达数小时的性能提升优化。当然,除非你问这个是因为你正在为亚马逊开发。 (即使在像亚马逊这样的地方,每天有数百万次点击,重用变量也不会带来任何显着的性能提升)
回到你的问题;我相信你应该只重用一个变量,当它包含原始状态的更新内容时。但总的来说,这种情况不会发生太多。
我认为在以下情况下,重用
$content
var 是合理的选择function getContent()
{
$cacheId = 'someUniqueCacheIdSoItDoesNotTriggerANotice';
$content = someCacheLoadingCall( $cacheId );
if (null === $content) {
$content = someContentGeneratingFunction();
someCacheSavingCall( $cacheId, $content);
}
return $content;
}
描述代码
另外,请善待 future 的自己,始终为变量使用描述性名称。你会为此感谢自己。当你与自己达成协议(protocol),除非它在逻辑上有意义,否则永远不要重用变量,你就朝着可维护代码又迈出了一步。
想象一下,从现在起的 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。我不知道你的编程水平,如果我喋喋不休,抱歉。如果与您无关,我希望能帮助其他可能阅读此内容的人:)
关于php - 分配新变量与重用现有变量的优缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12123441/