Io uso echoe print_rmolto, e quasi mai uso print.
Sento che echoè una macro ed print_rè un alias di var_dump.
Ma questo non è il modo standard per spiegare le differenze.
Io uso echoe print_rmolto, e quasi mai uso print.
Sento che echoè una macro ed print_rè un alias di var_dump.
Ma questo non è il modo standard per spiegare le differenze.
Risposte:
printe echosono più o meno gli stessi; sono entrambi costrutti di linguaggio che mostrano stringhe. Le differenze sono sottili: printha un valore di ritorno di 1, quindi può essere usato nelle espressioni mentre echoha un voidtipo di ritorno; echopuò assumere più parametri, sebbene tale utilizzo sia raro; echoè leggermente più veloce diprint . (Personalmente, lo uso sempre echo, mai print.)
var_dumpstampa un dump dettagliato di una variabile, incluso il suo tipo e il tipo di eventuali sotto-elementi (se si tratta di un array o un oggetto). print_rstampa una variabile in una forma più leggibile dall'uomo: le stringhe non vengono citate, le informazioni sul tipo vengono omesse, le dimensioni dell'array non vengono fornite, ecc.
var_dumpè di solito più utile rispetto print_ral debug, nella mia esperienza. È particolarmente utile quando non sai esattamente quali valori / tipi hai nelle tue variabili. Considera questo programma di test:
$values = array(0, 0.0, false, '');
var_dump($values);
print_r ($values);
Con print_rte non puoi distinguere tra 0e 0.0, oppure falsee '':
array(4) {
[0]=>
int(0)
[1]=>
float(0)
[2]=>
bool(false)
[3]=>
string(0) ""
}
Array
(
[0] => 0
[1] => 0
[2] =>
[3] =>
)
eco
Nessun valore di ritorno
per esempio echo "String 1", "String 2"
Stampa
Restituisce 1, quindi può essere utilizzato in un'espressione
per esempio print "Hello"
o, if ($expr && print "foo")
print_r ()
var_dump ()
print_r(), ad esempio stampa anche il tipo di valorivar_export ()
print_r()evar_dump() - l'output risultante è un codice PHP valido!Appunti:
printpuò essere usato in un'espressione, consiglio alle persone di evitare di farlo, perché è dannoso per la leggibilità del codice (e perché è improbabile che sia mai utile). Le regole di precedenza quando interagiscono con altri operatori possono anche essere fonte di confusione. Per questo motivo, personalmente non ho mai motivo di usarlo echo.echoche printsono costrutti di linguaggio print_r()e var_dump()/ var_export()sono funzioni regolari. Non sono necessarie parentesi per racchiudere gli argomenti a echooprint (e se li usi, verranno trattati come in un'espressione).var_export()restituisca un codice PHP valido che consenta di rileggere i valori in un secondo momento, basarsi su questo per il codice di produzione può rendere più semplice l'introduzione di vulnerabilità di sicurezza dovute alla necessità di utilizzare eval(). Sarebbe meglio usare un formato come JSON invece di archiviare e rileggere i valori. La velocità sarà comparabile.echo $a, $b;sintassi quando puoi semplicemente fare echo $a . $b;: se $ ao $ b sono stringhe molto grandi, quest'ultima utilizzerà memoria e tempo extra creando una versione concatenata separata delle stringhe in memoria prima di essa può iniziare a inviare al browser.
echo $a; echo $b;anche usare anche tu .
Solo per aggiungere alla risposta di John ,echo dovrebbe essere l'unico che usi per stampare il contenuto sulla pagina.
printè leggermente più lento. var_dump()eprint_r() dovrebbe essere usato solo per il debug.
Inoltre degno di nota è che print_r()e var_dump()risuonano per impostazione predefinita, aggiungere un secondo argomento print_r()almeno che restituisce true per farlo ritornare invece, ad es print_r($array, TRUE).
Le differenze tra eco e ritorno sono:
echoing e returning?
print_rparecchio il parametro di ritorno mentre stavo programmando PHP. Tuttavia, tendevo a scrivere print_r( $foo, 1 );. È più veloce da scrivere;) E su questo su non mi interessa molto la leggibilità poiché trovo il nome print_rnon molto descrittivo.
var_dump()non supporta il secondo argomento consentendogli di restituire un valore come print_r()fa, perché var_dump()può accettare più argomenti per l'output.
echo
Non avendo tipo di ritorno
print
Tipo di restituzione
print_r()
Output come formattati,
La differenza tra echo , print , print_r e var_dump è molto semplice.
eco
echo in realtà non è una funzione ma un costrutto di linguaggio che viene utilizzato per stampare l'output. È leggermente più veloce della stampa.
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)
Puoi anche usare l'istruzione echo con o senza parentesi
echo ("Hello World"); // this will print Hello World
Stampa
Proprio come l' eco build print è anche un costrutto linguistico e non una vera funzione. La differenza tra echo e print è che print accetta solo un singolo argomento e print restituisce sempre 1. Mentre l' eco non ha valore di ritorno. Quindi la dichiarazione di stampa può essere utilizzata nelle espressioni.
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)
Proprio come l' eco , la stampa può essere utilizzata con o senza parentesi.
print ("Hello World"); // this will print Hello World
print_r
La funzione print_r () viene utilizzata per stampare informazioni leggibili dall'uomo su una variabile. Se l'argomento è un array, la funzione print_r () stampa le sue chiavi e i suoi elementi (lo stesso per gli oggetti).
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
La funzione var_dump viene solitamente utilizzata per il debug e stampa le informazioni (tipo e valore) su una variabile / matrice / oggetto.
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" }
Eco :
È un'istruzione non una funzione Nessun valore restituito
Non necessarie le parentesi
Non matrice di stampa
Stampa
È la vera funzione
Tipo di ritorno 1
Richiesto tra parentesi
Non matrice di stampa
print_r
Stampa in formato leggibile dall'uomo
Stringa non tra virgolette
Informazioni non dettagliate sulla variabile come type e all
var_dump
Tutte le informazioni di dump di variabili come tipo di elemento e sottoelemento
print è una vera funzione, è un costrutto linguistico proprio come l'eco. Può anche essere usato come una dichiarazione. non è un'affermazione né può essere utilizzata in una. non non richiede parentesi, né sia eco o stampare utilizzare le parentesi come una funzione avrebbe fatto. Hai anche perso una delle differenze principali: l'eco accetta più stringhe per l'eco separate da virgole. echoprint
** Echocan accetta più espressioni mentre la stampa non può. La funzione Print_r () PHP viene utilizzata per restituire un array in una forma leggibile dall'uomo. È semplicemente scritto come
![Print_r ($your_array)][1]
echo: echo è un costrutto linguistico in cui non è necessario utilizzare le parentesi con esso e può accettare qualsiasi numero di parametri e restituire il vuoto.
void echo (param1,param2,param3.....);
Example: echo "test1","test2,test3";
stampa: è un costrutto linguistico in cui non è necessario utilizzare le parentesi, basta prendere un parametro e restituire
1 always.
int print(param1);
print "test1";
print "test1","test2"; // It will give syntax error
prinf: è una funzione che richiede almeno una stringa e uno stile di formato e restituisce la lunghezza della stringa di output.
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() viene utilizzato per la stampa dell'array in formato leggibile dall'uomo.
print_r () può stampare il valore ma anche se il secondo parametro flag viene passato ed è VERO - restituirà il risultato stampato come stringa e nulla verrà inviato all'output standard. Informazioni su var_dump. Se il debugger XDebug è installato, i risultati di output verranno formattati in modo molto più leggibile e comprensibile.