$content = getContent($isAdmin = false)
通常情況下,我所看到的功能而函數的聲明就像是
function getContent($isAdmin = true){
....}
爲什麼會有人添加創建變量的過載並在函數調用中僅使用它一次!
我明白,這使得函數調用清晰,但我們不應該使用PHPDoc塊嗎?
$content = getContent($isAdmin = false)
通常情況下,我所看到的功能而函數的聲明就像是
function getContent($isAdmin = true){
....}
爲什麼會有人添加創建變量的過載並在函數調用中僅使用它一次!
我明白,這使得函數調用清晰,但我們不應該使用PHPDoc塊嗎?
我有這樣的感覺,你被這麼多「浪費」深深地震撼了。
保持冷靜,使用變量沒什麼不好,你應該經常使用它們。他們通常會使您的代碼更具描述性,甚至更快。
這裏比較具有描述性的部分就是這種情況,如果你看那條線,你會看到哪個參數是因爲現在它有一個名字。
但是我們不應該使用PHPDoc塊嗎?
呃,實際上這和(docblock)的評論無關。即使在函數定義,對於是參數沒有評論:
function getContent($isAdmin = true) {
這是由它的名字參數只是定義。
...
* @param $isAdmin bool (optional) true or false, true by default
...
function getContent($isAdmin = true) {
然而,是不是在函數被調用:此外,當你定義函數的文檔塊參數將只有
$content = getContent($isAdmin = false)
所以,如果你看一下這行(和按任何熱鍵前或鼠標按鈕),你已經閱讀過。沒有必要,只有代碼。即使在記事本或未配置的gedit中也能正常工作。
$nonAdmin = false;
$content = getContent($nonAdmin);
而且順便說一句,如果你的代碼需要評論,這通常是一個標誌,它太複雜了。此外,參數的名稱比docblock更重要。好的名字通常意味着你不需要有一個docblock標籤(這意味着:更少的代碼來維護),因爲這個名字本身就說明了。
此外,現代IDE通過靜態分析瞭解參數的類型,因此您也不需要docblock標記。所以不,你不應該總是使用PHPDocblocks。
寫,如:
$content = getContent($isAdmin = false)
讓$isAdmin
來,如果你發出var_dump($isAdmin)
定義外連的功能範圍,即你bool(false)
。
這樣,你節省了VAR分配:
$isAdmin = false;
$content = getContent($isAdmin);
...
someStuff($isAdmin);
這順便說一下變量賦值是相當便宜。無論如何,即使不存在變量,您仍然有麻煩。 PHP對這樣的事情非常好。不要擔心變量,即使只使用一次,也要使用它們。他們會改進你的代碼。 – hakre