2010-05-27 17 views

cevap

31

numaralı başvuru kaynağına geri dönmüyorsanız, aynı şeyi kastediyorlar. Parantezlerin hariç tutulması tercih edilir. the docs Gönderen:

Not: return() bir dil oluşumu değil, bir fonksiyon olduğundan, değiştirgesini içeren parantez gerekli olmadığını unutmayın. Onları dışarıda bırakmak yaygındır ve PHP'nin bu durumda yapacak daha az işi olduğu için bunu yapmanız gerekir.

Not: referans olarak döndürürken bu işe yaramaz gibi, dönüş değişkeni parantez kullanmak asla. Değişkenleri yalnızca bir referansın sonucu değil, referans olarak döndürebilirsiniz. return ($a) kullanırsanız; sonra bir değişken döndürmüyorsunuz, ancak ($a) ifadesinin sonucu (elbette $a değeri). dönüş() de bir dil yapısı, ve bir fonksiyonu olduğu

+0

Daha az iş her zaman daha iyidir, teşekkürler. Sanırım bu 'echo' için de geçerli midir? –

+1

@Josh K: Yapıyor (artı, birleştirme işlecinden ziyade virgül kullanın). – webbiedave

+4

Ayrıca, aşırı çalışmış parmaklarınız için işinizi azaltın! – salathe

3

Not olarak, bağımsız değişkenler parantez gerekli değildir. Onları terk etmek yaygındır ve PHP'nin bu durumda daha az çalışması olduğu için bunu yapmanız gerekir.

referansıyla döndürüldüğünde, dönüş değişkeniniz etrafında hiçbir zaman parantez kullanmayın, çünkü bu çalışmaz. Değişkenleri yalnızca bir referansın sonucu değil, referans olarak döndürebilirsiniz. Eğer iade kullanırsanız ($ a); sonra bir değişken döndürmüyorsunuz, ancak ifadenin sonucu ($ a) (tabii ki, $ a'nın değeridir).

(Source)

1

Evet. Eğer parantez kullanırsanız, PHP'nin ilk önce çözmek zorunda kalacağı bir ifade olacaktır, bu da birkaç CPU döngüsünün israfıdır. Ayrıca, yalnızca return $var;

'u kullanarak başvuruyla geri dönemezsiniz. Bu, the manual'da açıkça belirtilmiştir. PHP Manual itibaren

4

:

"referans olarak döndürürken bu işe yaramaz gibi, dönüş değişkeni parantez kullanmak asla yalnızca, referans olarak değişkenleri dönmek açıklamada kaynaklanmadığı edebilirsiniz.. Eğer getiri ($ a) kullanırsanız, o zaman bir değişken döndürmüyorsunuz, ancak ifadenin sonucu ($ a) (tabii ki, $ a'nın değeridir). "

Düzenleme: Bu return($var) ve return $var arasında bir fark olduğunu gösterir. Spesifik olarak, eski, $var değerini döndürecektir ve ikincisi, $var'un kendisini iade edecektir.

1

Bu bir dil yapısı değil, bir işlev, bu nedenle her ikisi de çalışıyor neredeyse aynı. Tho iki farklılıklar vardır. Son teklif php.net: hayır parametre verilir

, o zaman parantezler yok edilmeli ve BOŞ iade edilecektir. Geri dönüş() numaralı parantez içinde, ancak bağımsız değişkenleri olmadan, bir ayrıştırma hatasıyla sonuçlanır. referans olarak döndürürken bu çalışmayacak olarak

ve

Sen, dönüş değişkeni etrafında parantez kullanmak asla. değişkenlerini yalnızca bir bildirimin sonucu olarak değil döndürerek döndürebilirsiniz. ($ a) döndürürseniz; sonra değişkenini döndürmüyorsunuz, ancak ifadesinin ($ a) sonucunu (tabii ki, $ a) değerini döndürmüyorsunuz.

Kaynak: php.net

2

bir dizi iki değeri döndürürken parantezi kullanmak tek zamandır.

return array($val,$valb); 

Bu örnek, ancak bu ben parantez gereklidir düşünüyorum tek örneğidir, başlangıçtaki soruya farklıdır.

+0

Mükemmel bir nokta! –

+0

sadece bunları kullanmam için hızlı bir dönüş değeri belirlemek içindir: 'return ($ var? 'Yep': 'no');' fakat çoğu zaman parantezi bırakıyorum ' – Zack

İlgili konular