时间:2021-07-01 10:21:17 帮助过:3人阅读
$foo, $a, $x
等等?
如题,在编写代码的时候,总会遇到一些临时变量
那么你通常会选择给临时变量取个什么名字,
比如
$foo, $a, $x
等等?
临时变量名,主要就是看用在哪里的
如果是用在循环中的肯定是
$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它,讨论他的生命周期又有什么意义呢。
至于作用域内的,这个随心情呗。
$temp
$tmp
就我来说,如果是单独一个临时变量我会用_
完事,多个就要带点含义了,不过总是要以_
开头。呵呵。