Ich benutze echo
und print_r
viel und fast nie print
.
Ich denke, es echo
ist ein Makro und print_r
ein Alias von var_dump
.
Dies ist jedoch nicht die Standardmethode, um die Unterschiede zu erklären.
Ich benutze echo
und print_r
viel und fast nie print
.
Ich denke, es echo
ist ein Makro und print_r
ein Alias von var_dump
.
Dies ist jedoch nicht die Standardmethode, um die Unterschiede zu erklären.
Antworten:
print
und echo
sind mehr oder weniger gleich; Sie sind beide Sprachkonstrukte, die Zeichenfolgen anzeigen. Die Unterschiede sind subtil: print
hat einen Rückgabewert von 1, sodass er in Ausdrücken verwendet werden kann, während er echo
einen void
Rückgabetyp hat; echo
kann mehrere Parameter annehmen, obwohl eine solche Verwendung selten ist; echo
ist etwas schneller alsprint
. (Ich persönlich benutze immer echo
, nie print
.)
var_dump
druckt einen detaillierten Speicherauszug einer Variablen aus, einschließlich ihres Typs und des Typs aller Unterelemente (wenn es sich um ein Array oder ein Objekt handelt). print_r
Gibt eine Variable in einer besser lesbaren Form aus: Zeichenfolgen werden nicht in Anführungszeichen gesetzt, Typinformationen werden weggelassen, Arraygrößen werden nicht angegeben usw.
var_dump
ist print_r
meiner Erfahrung nach normalerweise nützlicher als beim Debuggen. Dies ist besonders nützlich, wenn Sie nicht genau wissen, welche Werte / Typen Ihre Variablen enthalten. Betrachten Sie dieses Testprogramm:
$values = array(0, 0.0, false, '');
var_dump($values);
print_r ($values);
Mit print_r
kann man den Unterschied zwischen 0
und 0.0
, und false
und nicht erkennen ''
:
array(4) {
[0]=>
int(0)
[1]=>
float(0)
[2]=>
bool(false)
[3]=>
string(0) ""
}
Array
(
[0] => 0
[1] => 0
[2] =>
[3] =>
)
Echo
Kein Rückgabewert
z.B echo "String 1", "String 2"
Gibt zurück 1
, damit es in einem Ausdruck verwendet werden kann
z.B print "Hello"
oder, if ($expr && print "foo")
print_r ()
var_dump ()
print_r()
, um beispielsweise auch den Wertetyp zu druckenvar_export ()
print_r()
und var_dump()
- die resultierende Ausgabe ist gültiger PHP-Code!Anmerkungen:
print
es in einem Ausdruck verwendet werden kann, empfehle ich, dies zu vermeiden, da dies die Lesbarkeit des Codes beeinträchtigt (und es unwahrscheinlich ist, dass es jemals nützlich sein wird). Die Vorrangregeln bei der Interaktion mit anderen Operatoren können ebenfalls verwirrend sein. Aus diesem Grund habe ich persönlich nie einen Grund, es zu überarbeiten echo
.echo
und print
sind Sprachkonstrukte print_r()
und var_dump()
/ var_export()
oder reguläre Funktionen. Sie benötigen keine Klammern, um die Argumente in echo
oder einzuschließen print
(und wenn Sie sie verwenden, werden sie wie in einem Ausdruck behandelt).var_export()
gültiger PHP-Code zurückgegeben wird, mit dem Werte später zurückgelesen werden können, kann es aufgrund der Verwendung einfacher sein, Sicherheitslücken einzuführen, wenn Sie sich für Produktionscode darauf verlassen eval()
. Es ist besser, ein Format wie JSON zu verwenden, um Werte zu speichern und zurückzulesen. Die Geschwindigkeit wird vergleichbar sein.echo $a, $b;
Syntax möchten, wenn Sie dies nur tun können echo $a . $b;
: Wenn entweder $ a oder $ b wirklich große Zeichenfolgen sind, benötigt letzterer zusätzlichen Speicher und Zeit, um eine separate verkettete Version der Zeichenfolgen im Speicher davor zu erstellen kann entweder an den Browser ausgeben.
echo $a; echo $b;
.
Nur um Johns Antwort zu ergänzen , echo
sollte dies die einzige sein, mit der Sie Inhalte auf die Seite drucken.
print
ist etwas langsamer. var_dump()
und print_r()
sollte nur zum Debuggen verwendet werden.
Erwähnenswert ist auch, dass print_r()
und var_dump()
wird standardmäßig wiedergegeben, fügen Sie print_r()
mindestens ein zweites Argument hinzu , das als wahr ausgewertet wird, damit es stattdessen zurückkehrt, z print_r($array, TRUE)
.
Der Unterschied zwischen Echo und Rückkehr ist:
echo
ing und return
ing?
print_r
Rückgabeparameter ziemlich oft verwendet, während ich PHP programmiert habe . Ich neigte jedoch dazu zu schreiben print_r( $foo, 1 );
. Es ist schneller zu tippen;) Und darüber interessiert mich die Lesbarkeit print_r
nicht so sehr, da ich finde, dass der Name auch nicht sehr aussagekräftig ist.
var_dump()
unterstützt das zweite Argument nicht, sodass es einen Wert zurückgeben kann print_r()
, da var_dump()
mehrere Argumente für die Ausgabe akzeptiert werden können.
echo
Kein Rückgabetyp
print
Rückgabetyp haben
print_r()
Ausgaben wie formatiert,
Der Unterschied zwischen echo , print , print_r und var_dump ist sehr einfach.
Echo
Echo ist eigentlich keine Funktion, sondern ein Sprachkonstrukt, mit dem die Ausgabe gedruckt wird. Es ist geringfügig schneller als der Druck.
echo "Hello World"; // this will print Hello World
echo "Hello ","World"; // Multiple arguments - this will print Hello World
$var_1=55;
echo "$var_1"; // this will print 55
echo "var_1=".$var_1; // this will print var_1=55
echo 45+$var_1; // this will print 100
$var_2="PHP";
echo "$var_2"; // this will print PHP
$var_3=array(99,98,97) // Arrays are not possible with echo (loop or index value required)
$var_4=array("P"=>"3","J"=>"4"); // Arrays are not possible with echo (loop or index value required)
Sie können die Echo-Anweisung auch mit oder ohne Parenthese verwenden
echo ("Hello World"); // this will print Hello World
Genau wie das Echo- Konstrukt ist auch das Drucken ein Sprachkonstrukt und keine echte Funktion. Der Unterschied zwischen Echo und Print besteht darin, dass print nur ein einziges Argument akzeptiert und print immer 1 zurückgibt. Während echo keinen Rückgabewert hat. Die print- Anweisung kann also in Ausdrücken verwendet werden.
print "Hello World"; // this will print Hello World
print "Hello ","World"; // Multiple arguments - NOT POSSIBLE with print
$var_1=55;
print "$var_1"; // this will print 55
print "var_1=".$var_1; // this will print var_1=55
print 45+$var_1; // this will print 100
$var_2="PHP";
print "$var_2"; // this will print PHP
$var_3=array(99,98,97) // Arrays are not possible with print (loop or index value required)
$var_4=array("P"=>"3","J"=>"4"); // Arrays are not possible with print (loop or index value required)
Genau wie Echo kann Print mit oder ohne Klammern verwendet werden.
print ("Hello World"); // this will print Hello World
print_r
Mit der Funktion print_r () werden lesbare Informationen zu einer Variablen gedruckt. Wenn das Argument ein Array ist, druckt die Funktion print_r () ihre Schlüssel und Elemente (dasselbe gilt für Objekte).
print_r ("Hello World"); // this will print Hello World
$var_1=55;
print_r ("$var_1"); // this will print 55
print_r ("var_1=".$var_1); // this will print var_1=55
print_r (45+$var_1); // this will print 100
$var_2="PHP";
print_r ("$var_2"); // this will print PHP
$var_3=array(99,98,97) // this will print Array ( [0] => 1 [1] => 2 [2] => 3 )
$var_4=array("P"=>"3","J"=>"4"); // this will print Array ( [P] => 3 [J] => 4 )
var_dump
Die Funktion var_dump wird normalerweise zum Debuggen verwendet und gibt die Informationen (Typ und Wert) zu einer Variablen / einem Array / einem Objekt aus.
var_dump($var_1); // this will print int(5444)
var_dump($var_2); // this will print string(5) "Hello"
var_dump($var_3); // this will print array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
var_dump($var_4); // this will print array(2) { ["P"]=> string(1) "3" ["J"]=> string(1) "4" }
Echo :
Es ist eine Anweisung, keine Funktion. Kein Rückgabewert
Nicht erforderlich die Klammern
Array nicht drucken
Es ist eine echte Funktion
Geben Sie Typ 1 zurück
Benötigte die Klammern
Array nicht drucken
Print_r
Drucken Sie in lesbarem Format
Zeichenfolge nicht in Anführungszeichen
Nicht Detailinformationen von Variablen wie Typ und alle
var_dump
Alle Dump-Informationen von Variablen wie Elementtyp und Unterelement
print
ist keine echte Funktion, es ist ein Sprachkonstrukt wie Echo. Es kann auch als Anweisung verwendet werden. echo
ist keine Aussage und kann auch nicht in einer verwendet werden. print
erfordert weder Klammern, noch verwenden Echo oder Druck die Klammern wie eine Funktion. Sie haben auch einen der Hauptunterschiede übersehen: echo akzeptiert mehrere durch Kommas getrennte Zeichenfolgen.
** Echocan akzeptiert mehrere Ausdrücke, während der Druck nicht möglich ist. Die PHP-Funktion Print_r () wird verwendet, um ein Array in einer für Menschen lesbaren Form zurückzugeben. Es ist einfach geschrieben als
![Print_r ($your_array)][1]
echo: echo ist ein Sprachkonstrukt, bei dem keine Klammern verwendet werden müssen. Es kann eine beliebige Anzahl von Parametern annehmen und void zurückgeben.
void echo (param1,param2,param3.....);
Example: echo "test1","test2,test3";
print: Es handelt sich um ein Sprachkonstrukt, bei dem keine Klammern verwendet werden müssen. Es wird nur ein Parameter verwendet und zurückgegeben
1 always.
int print(param1);
print "test1";
print "test1","test2"; // It will give syntax error
prinf: Dies ist eine Funktion, die mindestens eine Zeichenfolge und einen Formatstil verwendet und die Länge der Ausgabezeichenfolge zurückgibt.
int printf($string,$s);
$s= "Shailesh";
$i= printf("Hello %s how are you?",$s);
echo $i;
Output : Hello Shailesh how are you?
27
echo returns void so its execution is faster than print and printf
print_r()
wird zum Drucken des Arrays in einem für Menschen lesbaren Format verwendet.
print_r () kann einen Wert ausdrucken, aber auch, wenn der zweite Flag-Parameter übergeben wird und TRUE ist - er gibt das gedruckte Ergebnis als Zeichenfolge zurück und sendet nichts an die Standardausgabe. Über var_dump. Wenn der XDebug-Debugger installiert ist, werden die Ausgabeergebnisse viel besser lesbar und verständlicher formatiert.