Wie sind Echo und drucken unterschiedlich in PHP? [Duplikat]
Frage
Mögliche Duplizieren:
Referenz: Vergleicht man die PHP-Print und echo
Gibt es einen wichtigen und grundlegenden Unterschied zwischen diesen beiden Funktionen in PHP?
Lösung
Von: http: / /web.archive.org/web/20090221144611/http://faqts.com/knowledge_base/view.phtml/aid/1/fid/40
-
Geschwindigkeit. Es gibt einen Unterschied zwischen den beiden, aber Geschwindigkeit her es sollte irrelevant sein, welche Sie verwenden. Echo ist geringfügig schneller da sie gesetzt keinen Rückgabewert, wenn Sie wirklich die unten erhalten möchten praktisch veranlagt.
-
Expression.
print()
verhält sich wie eine Funktion, dass Sie tun können:$ret = print "Hello World"
; Und$ret
wird1
. Das bedeutet, dass der Druck kann als Teil eines komplexeren Ausdrucks verwendet werden, wo Echo nicht. Ein Beispiel aus dem PHP-Handbuch:
$b ? print "true" : print "false";
Druck ist auch Teil der Präzedenztabelle, die es, wenn es sein muss wird in einem komplexen Ausdruck verwendet werden. Es ist nur etwa an der Unterseite obwohl die Vorrang-Liste. Nur "" AND, OR und XOR niedriger.
- Parameter (s). Die Grammatik ist:
echo expression [, expression[, expression] ... ]
Aberecho ( expression, expression )
nicht gültig ist. Dies wäre gültig:echo ("howdy"),("partner")
; dasselbe wie:echo "howdy","partner"
; (Setzt man die Klammern in diesem einfachen Beispiel dient kein Zweck, da es keine Rangfolge der Operatoren Problem mit einem einzigen Begriff ähnlich.)
So, Echo ohne Klammern können mehrere Parameter übernehmen, die erhalten verketteten:
echo "and a ", 1, 2, 3; // comma-separated without parentheses
echo ("and a 123"); // just one parameter with parentheses
print()
kann nur einen Parameter übernehmen:
print ("and a 123");
print "and a 123";
Andere Tipps
Sie sind:
- Drucken dauert nur einen Parameter, während Echo mehrere Parameter haben kann.
- Drucken gibt einen Wert (1), so kann als Ausdruck verwendet werden.
- Echo ist etwas schneller.
Um auf die Antworten oben hinzufügen, während Druck nur einen Parameter übernehmen kann, ist es für die Verkettung von mehreren Werten ermöglichen wird, das heißt:
$count = 5;
print "This is " . $count . " values in " . $count/5 . " parameter";
Dies ist 5 Werte in 1 Parameter
Ich denke, print()
ist langsamer als echo
.
Ich mag print()
verwenden nur für Situationen wie:
echo 'Doing some stuff... ';
foo() and print("ok.\n") or print("error: " . getError() . ".\n");
Wie das PHP.net Handbuch schlägt vor, nehmen Sie eine Lese von diese Diskussion .
Ein wesentlicher Unterschied besteht darin, dass echo
mehrere Parameter Ausgang nehmen kann. Z.
echo 'foo', 'bar'; // Concatenates the 2 strings
print('foo', 'bar'); // Fatal error
Wenn Sie nun das Ergebnis einer Ausgabeanweisung (wie unten) verwenden print
zu bewerten. Wenn nicht, verwenden echo
.
$res = print('test');
var_dump($res); //bool(true)