php - 分配新变量与重用现有变量的优缺点

标签 php variables

首先,如果这只是编码风格问题,我深表歉意。我想知道为每个属性或函数分配一个新变量以重新分配现有变量的利弊。这是假设您不需要访问范围之外的变量。

这就是我的意思(注意名称 $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()
  • 它是否取决于现有变量的内存大小?即,重新分配内存是否比分配新变量在计算上更昂贵?
  • 这是否总是一个范围问题,这意味着仅当您不需要此处显示的范围之外的每个变量值时才应使用 Option#2?
  • 它是否取决于每个变量的值是什么?重新分配给不同的数据类型是否会产生不同的成本?
  • 最佳答案

    从技术上讲,重用变量会(微不足道)更快。不过,这将使可测量的性能差异为零。

    虽然硬件变得更便宜,时间也变得更贵,但您更应该寻找可维护的代码。从长远来看,这将为您节省头痛和贵公司的资金。

    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 StudioZend Studio , Zend 的代码补全要好一点,但 Aptana 已被证明更稳定。

    PS。我不知道你的编程水平,如果我喋喋不休,抱歉。如果与您无关,我希望能帮助其他可能阅读此内容的人:)

    关于php - 分配新变量与重用现有变量的优缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12123441/

    相关文章:

    php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

    php - 在 PHP 5.1 中添加月份的准确方法?

    php - 使用 (SELECT) 和 (INSERT INTO) 将数据从 PHP 表单插入 MySQL 数据库

    php - 如何在Docker容器中为Laravel运行和安装Protractor E2E测试?

    Java 第二个变量忽略第一个变量

    java - 使用堆栈声明编译错误

    PHP-如何更新 cookie 过期日期?

    php - 对数据行进行分组,在组内维护一个id的子数组,只呈现每组中最低的id作为一级key

    c++ - C++ 中的变量到底是什么?

    c++ - 在C++中,对象(如队列、映射)的名称是引用(还是指针)?