以查询代替临时变量
1.什么是Replace Temp with Query
function totalMoney(){ $result = ($this->price)*($this->nums); //这个result就是临时变量 if($result>60) return $result*0.9; else return $result; } //用查询替代临时变量 function getPrice(){ return ($this->price)*($this->nums); } function totalMoney(){ if(getPrice()>60) return getPrice()*0.9; else return getPrice(); }
2.这样做的好处是什么
临时变量的问题在于:它们是暂时的,而且只能在所属函数内使用。由于临时变量只有在所属函数内才可见,所以它们会驱使你写出更长的函数,因为只有这样你才能访问到想要访问的临时变量。如果把临时变量替换为一个查询式(query method),那么同一个class中的所有函数都将可以获得这份信息。这将带给你极大帮助,使你能够为这个编写更清晰的代码。局部变量会使代码难以被提炼,所以你应该尽可能把它们替换为查询式。
以后如果你要改变这个变量的赋值,就不用满大街找这个$result是在哪里被赋值的了,而是直接找到function getPrice。