2010-04-25 10 views
5

Jaka jest różnica między tymi trzema?Różnica między słowami kluczowymi return, echo i print w PHP

powrót, echo i kluczowe druku w PHP

function theBand($abc,$bac) { 

return $abc; 
echo $abc; 

} 

Zarówno robi to samo, to robi show lub powrócić mi wartość mienia w zmiennej abc. Teraz powraca funkcja i echo trwa. Poza tym jest coś specyficznego dla słowa kluczowego return.

+0

Obie nie robią tego samego pracuj, jesteś w błędzie. – zerkms

+0

'echo' i' print' drukuje na ekranie dosłownie. 'Zwrot' po prostu daje TEN wartość TO rób to, co chcesz, to znaczy. 'echo'. 'Return' jest w wielu wypadkach lepszy. – Foxinni

Odpowiedz

15

return to konstrukcja językowa używana do opuszczania funkcji i podawania wartości wywołującej funkcję.

echo i print są zarówno konstrukcje językowe, które wyjściowe ciągi. Główna różnica polega na tym, że echo może przyjmować wiele argumentów oddzielonych przecinkami, ale print przyjmuje tylko jeden argument.

+0

co oznacza to twoje zdanie? Podaj wartość dla osoby dzwoniącej z funkcji i czy echo i wydruk nie opuszczają funkcji od wykonania następnego oświadczenia – Kevin

+0

@theband: Nie jestem pewien, co dokładnie mam do wyjaśnienia. 'return' jest prawie taki sam w PHP jak w każdym innym języku - zwraca wartość. Czy używałeś 'return' wcześniej w jakimkolwiek języku? Czy w mojej odpowiedzi jest konkretne słowo, którego nie rozumiesz? Czy wiesz o funkcjach i ich celach? Odnosząc się do twojego drugiego pytania, masz rację, że 'print' i' echo' nie powodują wyjścia funkcji. Wykonanie jest kontynuowane w następnym wierszu. –

+0

Mam zaktualizowane moje pytanie, proszę sprawdzić i dziękuję za odpowiedź. – Kevin

0

print zwraca 1, a echo nic nie zwraca. Echo może również przyjmować wiele argumentów, jak zaznacza Mark.

powrót (w kontekście funkcji) kończy działanie funkcji (Zwracanie wartości, jeśli została podana). W kontekście globalnym return przestanie wykonywać każdy plik, w którym się znajduje. Możesz więc wyskoczyć z pliku włączającego lub zatrzymać wykonywanie głównego skryptu w ten sposób.

3

return jest używany, gdy funkcja musi zwrócić wartość.

proszę zobaczyć HERE

echo i print są bardzo podobne jednak echo jest szybszy, ponieważ nie zwraca wartości.

  1. prędkością. Istnieje różnica między tymi dwoma, ale pod względem szybkości nie powinno mieć to znaczenia, z którego korzystasz. echo jest marginalnie szybszy, ponieważ nie ustawia wartości zwracanej, jeśli naprawdę chcesz dostać się do czystego granitu.

  2. Wyrażenie. print() zachowuje się jak funkcja, że ​​można zrobić:

    $ret = print "Hello World"; 
    

    I $ret będzie 1. Oznacza to, że print może być stosowany jako część bardziej złożonego wyrażenia gdzie echo nie może. Przykład z podręcznika PHP

    $b ? print "true" : print "false"; 
    

    print jest częścią tabeli pierwszeństwa, który musi być, jeśli jest to do stosowania w złożonych ekspresji. Jednak na samym dole znajduje się lista pierwszeństwa. Tylko ",", AND, i XOR są niższe.

  3. Parametry. Gramatyka to: echo expression [, expression[, expression] ... ]. Ale echo (expression, expression) jest nieprawidłowy. To byłoby ważne: echo ("howdy"),("partner"); to samo co: echo "howdy","partner"; (Umieszczenie nawiasów w tym prostym przykładzie nie ma sensu, ponieważ nie ma problemu z priorytetem operatora z jednym takim terminem: .)

Więc echo bez nawiasów może trwać wiele parametrów, które ulegną łączone:

echo "and a ", 1, 2, 3; // comma-separated without parentheses 
echo ("and a 123");  // just one parameter with parentheses 

print() może wziąć tylko jeden parametr:

print ("and a 123"); 
print "and a 123"; 
+0

Pomyślałem, że odpowiednie sformatowanie będzie wyglądać dobrze na twoją odpowiedź. ;) – Gumbo

Powiązane problemy