作为一名PHPER,您如何命名临时变量

luxixing
  • 3k

如题,在编写代码的时候,总会遇到一些临时变量
那么你通常会选择给临时变量取个什么名字,
比如

$foo, $a, $x

等等?

回复
阅读 5.3k
8 个回答
✓ 已被采纳

临时变量名,主要就是看用在哪里的
如果是用在循环中的肯定是

$i, $j, $k

如果是用foreach中的话,多数情况会是

$k, $v, $key, $val

如果是用临时使用的

$temp, $t

真不知道是干什么用,还要用的话,一般我叫

$ignore_me

另外就是根据类型叫名称

$int, $num, $str, $arr

临时变量跟普通变量一样命名,变量的生命周期不从变量名体现。

    一个变量既然存在,就一定是不能删的。他必然有类型,他必然有用途,既然有类型有用途,他必须有自己的名字,哪怕是 $intNumber、$keyOfUsersArray、$tempFileUploaded 也比 $tmp1、$tempFile 好。

    最糟糕的两个变量名是 $data1 和 $data2,我认为再次就是 $tmp 、 $temp 了。


    如果你们公司只有一个临时工,那么你可以叫他 "临时工" ,这没问题。但是如果新来了一个临时工呢?叫 "新来的临时工" ?再来怎么办?所以最好的办法是一开始就给他们取个名字。比如 "胖王","李花匠","小寸头","王大力"...

简单易读有意义的单词

补充一种,《重构——改善既有代码的设计》中介绍的一种去除临时变量的方法——使用查询代替临时变量(Replace Temp With Query):

重构前:

...
$basePrice = $this->quantity * $this->itemPrice; //临时变量$basePrice

if ($basePrice > 1000) {
    return $basePrice * 0.95;
} else {
    return $basePrice * 0.38;
}
...

重构后:

...
if ($this->basePrice() > 1000) {
    return $this->basePrice() * 0.95;
} else {
    return $this->basePrice() * 0.38;
}

...
//用于代替临时变量的查询式
public function basePrice() {
    return $this->quantity * $this->itemPrice;
}
...

书中所述的使用动机:
临时变量的问题在于:它们是暂时的,而且只能在所属函数内使用.由于临时变量只有在所属函数内才可见,所以它们会驱使你写出更长的函数,因为只有这样你才能访问到想要访问的临时变量.如果把临时变量替换为一个查询式(query method),那么同一个class中的所有函数都将可以获得这份信息.这将带给你极大帮助,使你能够为这个class编写更清晰的代码.

循环里的和@lazyboy的差不多,其他的就是变量名加_tmp后缀

不明白为什么非要有“临时”的概念,脚本运行完所有变量全销毁,运行的时候,我们很少会主动unset它,讨论他的生命周期又有什么意义呢。

至于作用域内的,这个随心情呗。

就我来说,如果是单独一个临时变量我会用_完事,多个就要带点含义了,不过总是要以_开头。呵呵。

宣传栏