PHP dönüş (değer);

6 Cevap php

return($var); ve return $var; daha sonra diğer parantez sararak arasında herhangi bir fark var mı?

6 Cevap

Unless you are returning by reference, bunlar aynı şey demek. Bu parantez hariç tutmak için tercih edilmektedir. Dan the docs:

Not: return() bir dil oluşumu bir fonksiyonu olduğundan, onun argümanlarını çevreleyen parantezler gerekli değildir unutmayın. Onları dışarı çıkmak için ortak ve PHP bu durumda işlerinin az olduğu gibi aslında bunu yapmak gerekir.

Not: referans olarak dönen zaman dönüş değişkeni parantez kullanmak asla, bu iş olmaz gibi. Sen sadece referans değil, bir ifadenin sonucu ile değişkenleri dönebilirsiniz. Eğer kullanırsanız {[(0)];} daha sonra, bir değişken dönen, fakat konum ifade ($a) sonucu (tabii ki, bir değer olan $a).

Kimden PHP Manual:

Referans ile dönerken bu iş olmaz gibi "Sen, dönüş değişkeni parantez kullanmak asla sadece bir ifadenin sonucu, referans değişkenleri değil dönebilirsiniz Eğer ($ a) getiri kullanırsanız;.. Sonra sen değilsin bir değişken, fakat (tabii ki, $ a değeri olan) ifadesi ($ a) sonucunu geri döndürülmesi. "

Edit: This means that there is a difference between return($var) and return $var. Specifically, the former will return the value of $var and the latter will return $var itself.

Return () bir dil oluşumu bir fonksiyonu olduğundan, onun argümanlarını çevreleyen parantezler gerekli olmadığını unutmayın. It is common to leave them out, and you actually should do so as PHP has less work to do in this case.

Sen never use parentheses around your return variable when returning by reference, bu gibi çalışmaz gerekir. Sen sadece referans değil, bir ifadenin sonucu ile değişkenleri dönebilirsiniz. Eğer dönüş kullanmayın if ($ a); o zaman bir değişken dönen, ama değil (tabii ki, bir $ değeri olan) ifadesi ($ a) sonucudur.

(Source)

Bir dizi iki değeri dönerken ben parantez kullanmak sadece zaman.

return array($val,$valb);

Bu örnek, ancak bu ben parantezler gerekli olduğunu düşünüyorum tek örneği, ilk sorunuzu farklıdır.

Evet. Eğer parantez kullanırsanız, PHP, bir kaç CPU döngüsü bir atık olan, ilk olarak çözmek zorunda kalacak bir ifade olacaktır. Ayrıca, return($var);, sadece kullanarak kullanarak referans ile iade edemez return $var;

Bu, tüm açık the manual belirtilmiştir.

Bu bir dil oluşumu değil, bir işlev, bu yüzden her iki almost aynı çalışıyoruz. Tho iki fark vardır. Php.net alıntı:

If no parameter is supplied, then the parentheses must be omitted ve NULL will be returned. Calling return() with parentheses but with no arguments will result in a parse error.

ve

You should never use parentheses around your return variable when returning by reference, as this will not work. You can only return variables by reference, not the result of a statement. If you use return ($a); then you're not returning a variable, but the result of the expression ($a) (which is, of course, the value of $a).

Source: php.net