Mögliches Duplikat:
Referenz: PHPs print und echo im Vergleich
Gibt es einen wesentlichen und grundlegenden Unterschied zwischen diesen beiden Funktionen in PHP?
Mögliches Duplikat:
Referenz: PHPs print und echo im Vergleich
Gibt es einen wesentlichen und grundlegenden Unterschied zwischen diesen beiden Funktionen in PHP?
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 in Bezug auf die Geschwindigkeit sollte es sollte es irrelevant sein, welche Sie verwenden. echo ist geringfügig schneller da es keinen Rückgabewert setzt, wenn Sie wirklich zur Sache kommen wollen. auf den Punkt kommen wollen.
Ausdruck. print()
verhält sich wie eine Funktion, die Sie ausführen können: $ret = print "Hello World"
Und $ret
wird sein 1
. Das bedeutet, dass print als Teil eines komplexeren Ausdrucks verwendet werden kann, was bei echo nicht möglich ist. Ein Beispiel aus dem PHP Manual:
$b ? print "true" : print "false";
print ist auch Teil der Rangfolgetabelle, was er auch sein muss, wenn er innerhalb eines komplexen Ausdrucks verwendet werden soll. Es befindet sich ganz am Ende der Vorrangliste. Nur ,
AND
OR
XOR
niedriger sind.
echo expression [, expression[, expression] ... ]
Aber echo ( expression, expression )
ist nicht gültig. Dies wäre gültig: echo ("howdy"),("partner")
; dasselbe wie: echo "howdy","partner"
(Das Setzen der Klammern in diesem einfachen Beispiel dient keinen Zweck, da es kein Problem mit der Vorrangigkeit von Operatoren bei einem einzelnen Term wie diesem gibt.)So kann echo ohne Klammern mehrere Parameter annehmen, die dann konkateniert werden:
echo "and a ", 1, 2, 3; // comma-separated without parentheses
echo ("and a 123"); // just one parameter with parentheses
print()
kann nur einen Parameter annehmen:
print ("and a 123");
print "and a 123";
Echo kann auch in einer ternären Operation verwendet werden: echo ($b) ? 'wahr' : 'falsch';
@philjohn Ich bin mir ziemlich sicher, dass Ihre Anweisung gleichbedeutend ist mit: echo (($b) ? 'true' : 'false'); und nicht: (echo ($b)) ? (echo ($b)) ? 'true' : 'false'; Also ist echo nicht Teil der eigentlichen Bedingung in der ternären Operation.
Wow, das ist eine wirklich schlechte Antwort von vor neun Jahren, ich glaube nicht, dass wir sie noch verbessern können. Entschuldigung!
@Legend Ich glaube, @grilix bezieht sich auf die Fähigkeit von print(), 1 zurückzugeben, wenn die foo()
Funktion false zurückgibt, dann wird die and
Teil falsch ist... damit kann der zweite Teil der Auswertung (nach der or
) auszuführen. Dies ist eine interessante Verwendung von print
an die ich noch nicht gedacht hatte.
Wie das PHP.net-Handbuch vorschlägt, lesen Sie bitte den Abschnitt diese Diskussion .
Ein wesentlicher Unterschied besteht darin, dass echo
kann mehrere Parameter zur Ausgabe annehmen. z.B.:
echo 'foo', 'bar'; // Concatenates the 2 strings
print('foo', 'bar'); // Fatal error
Wenn Sie das Ergebnis einer Ausgabeanweisung (wie unten) auswerten möchten, verwenden Sie print
. Wenn nicht, verwenden Sie echo
.
$res = print('test');
var_dump($res); //bool(true)
Ich weiß, dass diese Antwort alt ist, aber ist sie nicht print
IMMER 1 zurückgeben? Außerdem, wann und warum sollten Sie jemals testen müssen, um sicher zu sein, dass etwas ausgedruckt wurde? Das ist schlicht und ergreifend NICHT NÖTIG, NIEMALS! Ehrlich gesagt, ist print nutzlos und sollte zugunsten von ECHO entfernt werden!
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.