Powiel możliwe:
Reference: Comparing PHP's print and echoCzym różni się echo i print w PHP?
Czy istnieje poważny i zasadnicza różnica między tymi dwoma funkcjami w PHP?
Powiel możliwe:
Reference: Comparing PHP's print and echoCzym różni się echo i print w PHP?
Czy istnieje poważny i zasadnicza różnica między tymi dwoma funkcjami w PHP?
Od: http://web.archive.org/web/20090221144611/http://faqts.com/knowledge_base/view.phtml/aid/1/fid/40
Speed. Istnieje różnica między tymi dwoma, ale pod względem szybkości, , powinno być nieistotne, z którego korzystasz. echo jest nieznacznie szybsze ponieważ nie ustawia wartości zwracanej, jeśli naprawdę chcesz dostać się do nitty gritty.
Wyrażenie. print()
zachowuje się jak funkcja, którą można wykonać: $ret = print "Hello World"
; I $ret
będzie 1
. Oznacza to, że wydruk może być używany jako część bardziej złożonego wyrażenia, którego echo nie może. przykład z podręcznika PHP:
$b ? print "true" : print "false";
druku jest również częścią tabeli pierwszeństwa, które musi być, jeśli ma być stosowany w złożonych wypowiedzi. Jednak na samym dole znajduje się lista pierwszeństwa. Tylko "," AND, OR i XOR są niższe.
echo expression [, expression[, expression] ... ]
Ale echo (expression, expression)
jest nieprawidłowy. To byłoby ważne: echo ("howdy"),("partner")
; taki sam jak: echo "howdy","partner"
; (Umieszczenie wsporniki w tym prostym przykładzie służy bezcelowe, ponieważ nie istnieje problem pierwszeństwo operatora z jednym terminu takiego.)więc echo bez nawiasów mogą przyjmować 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";
Zgodnie z sugestią podręcznika PHP.net, przeczytaj this discussion.
Jedną z głównych różnic jest to, że echo
może przyjmować wiele parametrów. Np .:
echo 'foo', 'bar'; // Concatenates the 2 strings
print('foo', 'bar'); // Fatal error
Jeśli szukasz do oceny wyników instrukcji wyjściowego (jak poniżej) używać print
. Jeśli nie, użyj echo
.
$res = print('test');
var_dump($res); //bool(true)
echo nie accept echo ('foo', 'bar') ;, ale akceptuje echo "foo", "bar"; – grilix
Wiem, że ta odpowiedź jest stara, ale nie "drukuje" ZAWSZE zwraca 1? Poza tym, kiedy i dlaczego musiałbyś kiedyś przetestować, żeby się upewnić, że coś jest wydrukowane? To jest po prostu NIE POTRZEBNE, KIEDYKOLWIEK! Szczerze mówiąc, druk jest bezużyteczny i powinien zostać usunięty na korzyść ECHO! –
Są to:
Aby dodać do powyższych odpowiedzi, podczas drukowania może wziąć tylko jeden parametr, pozwoli na łączenie wielu wartości, czyli:
$count = 5;
print "This is " . $count . " values in " . $count/5 . " parameter";
To jest 5 wartości w 1 parametr
Myślę, że print()
jest wolniejszy niż echo
.
Lubię używać print()
tylko w sytuacjach, takich jak:
echo 'Doing some stuff... ';
foo() and print("ok.\n") or print("error: " . getError() . ".\n");
Czy możesz to wyjaśnić, Sir? – Legend
Echo mogą być również wykorzystywane w potrójnego działania: echo ($ B)? 'prawda fałsz'; – philjohn
@philjohn Jestem prawie pewien, że twoje oświadczenie jest ekwiwalentne do: echo (($ b)? 'True': 'false'); i nie: (echo ($ b))? 'prawda fałsz'; Tak więc echo nie jest częścią rzeczywistego stanu w operacji trójskładnikowej. – Bart
W interesie zrobienia czegoś, czego nie można naprawić za pomocą 'echo':' $ b? print "true": die ("false"); ' – Brilliand