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

 更新时间:2015年04月03日 10:39:20   投稿:junjie  
这篇文章主要介绍了PHP中应该避免使用同名变量(拆分临时变量),当一个临时变量被赋值多次时,那么将其拆分成多个,除非它是一个循环计数器,需要的朋友可以参考下

当一个临时变量被赋值多次时,那么将其拆分成多个,除非它是一个循环计数器。

Motivation

临时变量有这多种不同的用途。比如它们可被用作循环中的计数器,在循环中保存结果集,亦或保存一个冗长的表达式的计算结果等等。

这些类型的变量(容器)应该只赋值一次。如果一个同名的临时变量被赋予多个职责,将会影响代码的可读性。这个时候我们应当引入一个新的临时变量以使代码更加清晰易懂。

可能有些注重性能的人会说,引入一个新的变量将会占用更多的内存。的确如此,但是注册一个新的变量不会吸干服务器内存的,这一点请放心,我们不是活在 386 时代,与其在这些无聊的细枝末节上面搞所谓的优化,不如去优化真正的系统性能瓶颈,比如数据库、网络连接等等,而且清晰易懂的代码更容易被重构,发现 Bug,或者解决性能问题等等。

Example Code

很多时候,我们使用同一个 $temp 变量来计算一个物体的不同属性,这种情况比较常见,比如下面这个例子:

复制代码 代码如下:

function rectangle($width=1, $height=1) {
    $temp = 2 * ($width + $height);
    echo "Perimter: $temp <br />";
 
    $temp = $width * $height;
    echo "Area: $temp";
}

正如你所看到的,$temp 被使用了两次分别用来计算长方形的周长以及面积。这个例子看起来非常直观清晰,但实际的项目代码可能远比这个例子复杂,如果我们把代码改成下面的样子,这样,不管代码如何复杂都不会有混淆感了。

复制代码 代码如下:

function rectangle($width=1, $height=1) {
    $perimeter = 2 * ($width + $height);
    echo "Perimter: $perimeter <br />";  
 
    $area = $width * $height;
    echo "Area: $area";
}

为不同的东西(如表达式)声明一个新的临时变量吧,大部分时候性能并不是什么问题,而可读性则非常重要。

相关文章

  • 快速配置PHPMyAdmin方法

    快速配置PHPMyAdmin方法

    今天想提一下如何配置PHPMyAdmin,虽然在本机开发、调试系统时或许并不会用到它,但对于将来在远程虚拟主机中放置Mysql数据库时,必然会用到phpmyadmin这样的Mysql GUI工具,所以,在本地先熟悉一下如何使用也是有必要的。
    2008-06-06
  • PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例

    PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例

    这篇文章主要介绍了PHP中addslashes()和stripslashes()实现字符串转义和还原用法,结合实例形式较为详细的分析了addslashes()和stripslashes()函数的功能,定义及具体使用技巧,并附带说明了addslashes()与addcslashes()函数的区别,需要的朋友可以参考下
    2016-01-01
  • php错误日志简单配置方法

    php错误日志简单配置方法

    这篇文章主要介绍了php错误日志简单配置方法,较为详细的分析了php错误日志配置所涉及的php.ini与php-fpm.conf文件配置项相关属性操作技巧,需要的朋友可以参考下
    2016-07-07
  • php5.3 废弃函数小结

    php5.3 废弃函数小结

    php5.3 废弃函数小结
    2010-05-05
  • 使用PHP和Redis实现消息队列功能

    使用PHP和Redis实现消息队列功能

    这篇文章主要介绍了如何使用PHP和Redis实现消息队列功能,文中通过示例代码介绍的非常详细,对大家学习或者使用PHP具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧<BR>
    2024-03-03
  • js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析

    js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析

    以下是对js限制checkbox勾选的个数以及php获取多个checkbbox的方法进行了详细的分析介绍,需要的朋友可以参考下
    2013-07-07
  • PHP小偷程序的设计与实现方法详解

    PHP小偷程序的设计与实现方法详解

    这篇文章主要介绍了PHP小偷程序的设计与实现方法,结合实例形式分析了php基于HTML解析类实现小偷程序抓取图片的相关操作技巧与注意事项,需要的朋友可以参考下
    2016-10-10
  • PHP 错误之引号中使用变量

    PHP 错误之引号中使用变量

    当看到错误提示 syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
    2009-05-05
  • PHP如何利用P3P实现跨域

    PHP如何利用P3P实现跨域

    在开发中,我们碰到的跨域主要还是纠结在IE,页面中的IFRAME或者FRAME或者JS跨域的时候,IE有安全策略限制页面不带cookie,但是如果我们加上P3P,就没有这策略的限制。这也是P3P来突破跨域的可行前提
    2013-08-08
  • PHP 函数call_user_func和call_user_func_array用法详解

    PHP 函数call_user_func和call_user_func_array用法详解

    下面来和大家分享一下这个call_user_func_array和call_user_func函数的用法,另外附赠func_get_args()函数和func_num_args()函数,嘿嘿!!
    2014-03-03

最新评论