echo e print sono due costrutti fondamentali di PHP e nell'uso quotidiano sono praticamente identici.

echo "Edit il blog di HTML.IT";
print "Edit il blog di HTML.IT";

La differenza fondamentale risiede nel fatto che echo è in grado di stampare una o più stringhe, mentre print ne gestisce una per volta.

echo "Edit ", "il ", "blog ", "di ", "HTML.IT";
print "Edit il blog di HTML.IT";

Inoltre tra i due c'è un impercettibile, ma in alcuni constesti determinante, o almeno avvertibile, scarto tra le prestazioni: echo infatti sarebbe circa il 20% più veloce di print.

Personalmente, uso sempre echo: è più breve da scrivere, mi permette di stampare più stringhe contemporaneamente senza ricorrere alla concatenazione e pare abbia qualche vantaggio in termini di performance.

E voi, quale usate? E perché?

18 CommentiDi' la tua

Il tuo indirizzo email non sarà mostrato pubblicamente. I campi obbligatori sono contrassegnati da *

Sempre usato echo. ho scoperto dell'esistenza del comando print solo poco tempo fa!! xD

Kevin
Kevin

echo tutta la vita ... :-) sempre che non si metta mano al codice di wordpress inferiore alla versione 2.7 o altri CMS datati: in quel caso print perche' l'echo non rimbalza :lol

sLa
sLa

@Senamion Allo stesso link postato precedentemente (proprio in fondo alla pagina), trovi un commento anche sugli apici. Si dice che fino a PHP 4.2 la differenza esisteva, ora se c'e' e' trascurabile. Non so ovviamente se i test riportati in questo link siano attendibili, tuttavia mi viene almeno il sospetto che spesso seguiamo ciecamente dei "falsi miti" solo per sentito dire. Oppure per mancato aggiornamento (quello che poteva essere vero fino alla versione X.0 puo' non essere piu' vero dalla X.1 in avanti). Non ho certezze, dico solo che il dubbo viene e fa riflettere

davide
davide

La differenza principale si ha nell'uso dell'apice singolo o doppio!

Senamion
Senamion

Non mi accapiglierei troppo sulla questione print vs echo. Date un'occhiata a questo link interessante. http://phplens.com/lens/php-book/optimizing-debugging-php.php In particolare, verso la fine della pagina, nella sezione "Useless Optimizations" si parla proprio di questa questione e si mette in evidenza che con php 4.3 non sembra ci siano particolari differenze. Non ho provato direttamente, ma mi verrebbe da pensare che con php 5 le differenze siano ancora minori. Forse molti benchmark sono falsati da fattori esterni (configurazioni diverse forse possono privilegiare un approccio rispetto all'altro?)

Davide
Davide

@sundog. Se uno non conosce le differenze tra due funzioni, usa quella che gli "piace" di più. print mi piace di più. Punto. Una volta scoperto che non sono uguali, si cambia.

Alessandro
Alessandro

Print....Principalmente perché restituisce qualcosa...

Ratamusa
Ratamusa

@alessandro: tu usi qualcosa in base all'antipatia?? così per differeneziarsi da "linuxisti"(sic!!)..non ho parole la differenza sostanziale é quella che dice davide, ti serve il ritorno di un valore? Usa print sennò echo

sundog
sundog

echo é il 20% più veloce perché non restituisce un valore bool che indica se la stampa é avvenuta o meno.

Marco Galli
Marco Galli

giusto per completezza, la differenza tra echo e print quando si tratta di concatenazione di stringhe sta nel fatto che passando ciascuna parte di stringa come parametri della funzione echo invece che stringhe da concatenare con il . per la funzione print, a livello di opcode si risparmia (se non ricordo male) uno o due estruzione per ciascun "echo" usata al posto della "print".

Matteo Galli
Matteo Galli