Home  >  Article  >  Backend Development  >  作为一名PHPER,您如何命名临时变量

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

WBOY
WBOYOriginal
2016-06-06 20:47:001112browse

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

$foo, $a, $x

等等?

回复内容:

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

$foo, $a, $x

等等?

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

$i, $j, $k

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

$k, $v, $key, $val

如果是用临时使用的

$temp, $t

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

$ignore_me

另外就是根据类型叫名称

$int, $num, $str, $arr

简单易读有意义的单词

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

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

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


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

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

重构前:

<code class="lang-php">...
$basePrice = $this->quantity * $this->itemPrice; //临时变量$basePrice

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

重构后:

<code class="lang-php">...
if ($this->basePrice() > 1000) {
    return $this->basePrice() * 0.95;
} else {
    return $this->basePrice() * 0.38;
}

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

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

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

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

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

$temp
$tmp

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn