找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 498|回复: 0
打印 上一主题 下一主题

PHP中应该避免使用同名变量(拆分临时变量)

[复制链接]

3444

主题

3465

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11142
跳转到指定楼层
楼主
发表于 2018-2-14 05:47:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            当一个临时变量被赋值多次时,那么将其拆分成多个,除非它是一个循环计数器。
Motivation
临时变量有这多种不同的用途。比如它们可被用作循环中的计数器,在循环中保存结果集,亦或保存一个冗长的表达式的计算结果等等。
这些类型的变量(容器)应该只赋值一次。如果一个同名的临时变量被赋予多个职责,将会影响代码的可读性。这个时候我们应当引入一个新的临时变量以使代码更加清晰易懂。
可能有些注重性能的人会说,引入一个新的变量将会占用更多的内存。的确如此,但是注册一个新的变量不会吸干服务器内存的,这一点请放心,我们不是活在 386 时代,与其在这些无聊的细枝末节上面搞所谓的优化,不如去优化真正的系统性能瓶颈,比如数据库、网络连接等等,而且清晰易懂的代码更容易被重构,发现 Bug,或者解决性能问题等等。
Example Code
很多时候,我们使用同一个 $temp 变量来计算一个物体的不同属性,这种情况比较常见,比如下面这个例子:
[U]复制代码[/U] 代码如下:
function rectangle($width=1, $height=1) {
    $temp = 2 * ($width + $height);
    echo "erimter: $temp
";

    $temp = $width * $height;
    echo "Area: $temp";
}
正如你所看到的,$temp 被使用了两次分别用来计算长方形的周长以及面积。这个例子看起来非常直观清晰,但实际的项目代码可能远比这个例子复杂,如果我们把代码改成下面的样子,这样,不管代码如何复杂都不会有混淆感了。
[U]复制代码[/U] 代码如下:
function rectangle($width=1, $height=1) {
    $perimeter = 2 * ($width + $height);
    echo "erimter: $perimeter
";   

    $area = $width * $height;
    echo "Area: $area";
}
为不同的东西(如表达式)声明一个新的临时变量吧,大部分时候性能并不是什么问题,而可读性则非常重要。
            
            
您可能感兴趣的文章:
  • thinkphp中常用的系统常量和系统变量
  • php几个预定义变量$_SERVER用法小结
  • php魔术变量用法实例详解
  • PHP中变量引用与变量销毁机制分析
  • PHP 魔术变量和魔术函数详解
  • PHP学习笔记(二):变量详解
  • php获取系统变量方法小结
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端