2010-05-27 57 views

回答

31

除非您通過參考返回,它們意味着同樣的事情。最好排除括號。從the docs

注:請注意,由於return()是一個語言結構而非函數,不需要圍繞其參數的括號內。通常將它們排除在外,實際上應該這樣做,因爲PHP在這種情況下的工作量較少。

注:通過引用返回時,你不應該使用括號返回變量,因爲這將無法正常工作。您只能通過引用返回變量,而不是語句的結果。如果您使用return ($a);那麼你不會返回一個變量,而是表達式($a)(當然,它的值爲$a)的結果。

+0

較少的工作總是更好,謝謝。我猜這也適用於'回聲'以及? – 2010-05-27 14:29:48

+1

@Josh K:它確實(加號,使用逗號而不是連接運算符)。 – webbiedave 2010-05-27 14:33:14

+4

另請注意,減少工作可憐的過度工作的手指! – salathe 2010-05-27 14:44:46

3

注意,由於回報率()是一個語言結構而非函數,不需要圍繞其參數的括號內。 這是很常見的情況,你應該這樣做,因爲PHP在這種情況下的工作量較少。

您應該從參考返回時不要在返回變量的周圍使用括號,因爲這樣做不起作用。您只能通過引用返回變量,而不是語句的結果。如果你使用return($ a);那麼你沒有返回一個變量,而是表達式($ a)的結果(當然這是$ a的值)。

Source

1

是。如果使用括號,它將成爲PHP必須首先解決的表達式,這是浪費幾個CPU週期。此外,您不能通過參考使用return($var);作爲參考,僅通過使用return $var;

這全部在the manual中清楚地陳述。

4

PHP Manual

「通過引用返回時,你不應該使用括號返回變量,因爲這將無法正常工作,您只能通過引用返回變量,而不是語句的結果。如果你使用return($ a);那麼你沒有返回一個變量,而是表達式的結果($ a)(當然這是$ a的值)。「

編輯: 這意味着有return($var)return $var之間的差。具體而言,前者將返回值$var,後者將返回$var本身。

1

這是一個語言結構,不是函數,所以兩者都工作幾乎相同。有兩個不同tho。引用php.net:

如果沒有提供任何參數,那麼 括號必須被省略NULL 將被退回。調用()返回 用括號但不帶參數 將導致解析錯誤。

你不應該使用括號 在你返回變量返回時,通過參考 ,因爲這將 不起作用。您只能通過引用返回 變量,而不是結果的聲明 。如果您使用退貨 ($ a);那麼你就不能返回 變量,但 表達式的結果($ A)(這是當然, 的的$值)。

來源:php.net

2

我使用括號中的唯一時間是與陣列返回兩個值時。

return array($val,$valb); 

這個例子與你最初的問題不同,但是這是唯一的例子,我認爲括號是必需的。

+0

非常好的一點! – 2010-05-27 15:52:48

+0

只有我使用它們的時間是確定一個快速的返回值:'回報:;'但大部分時間我把括號(是$ var'是的「不」?) – Zack 2010-05-27 16:57:16