echo vs. print
Mercoledì 3 Marzo 2010 - 07:56
di Andrea Ganduglia

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é?
Categoria: PHP e Open Source | Permalink
Commenti
1
Echo!
Print non l’ho mai preso davvero in considerazione :)
Inoltre è molto più veloce da scrivere echo di print.# - postato da maca - 03 Marzo 2010 - 08:34
2
Tutto il sito crea delle variabili ($header, $footer, $content) che racchiudo in una sola ($html) da dare in pasto ad un unico echo finale.
Risultato sulle prestazioni è eccellente !
# - postato da PiccoloSocrate - 03 Marzo 2010 - 09:09
3
Sempre usato echo :) ormai e’ un abitudine che mi porto dietro da anni e a quanto pare e’ l’abitudine giusta :)
4
Aldilà delle due differenze citate (performance e concatenazione), la vera differenza tra le due è print ritorna true (1 a dir la verità, ma viene considerato un valore vero per cui), mentre echo non ritorna nulla.
Questo implica che in un template si possa scrivere
$var and print $var . ' ha un valore';
ma non
$var and echo $var . ' ha un valore';
E’ questa la vera differenza tra echo e print, il resto sono fuffole.
# - postato da davide - 03 Marzo 2010 - 09:24
5
Sempre usato echo.
Per quale motivo -a parità di output- print è piu lento?
6
Io ho sempre usato echo perché più corto da scrivere.
In teoria dovrebbe essere più veloce perché “non perde tempo” a restituire qualcosa.
7
Io ho sempre usato print, perchè trattando con programmatori PHP ho potuto notare che echo viene usato di più da programmatori provenienti da background Linux, e ciò mi causava “antipatia”… ;)
Per differenziarmi dai linuxisti ho dunque sempre usato print, anche se questo post forse mi farà cambiare idea…
# - postato da Alessandro - 03 Marzo 2010 - 09:48
8
Uso echo senza dubbio.
In questo articolo:
http://www.simonedamico.it/200.....licazioni/
ho trattato anche le differenze di prestazioni tra i due costrutti. Seppur minimamente, echo è più veloce e prestante della print.
# - postato da Simone D'Amico - 03 Marzo 2010 - 10:44
9
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”.
# - postato da Matteo Galli - 03 Marzo 2010 - 10:49
10
echo è il 20% più veloce perchè non restituisce un valore bool che indica se la stampa è avvenuta o meno.
# - postato da Marco Galli - 03 Marzo 2010 - 11:12
11
@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
# - postato da sundog - 03 Marzo 2010 - 11:53
12
Print….Principalmente perchè restituisce qualcosa…
# - postato da Ratamusa - 03 Marzo 2010 - 12:51
13
@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.
# - postato da Alessandro - 03 Marzo 2010 - 13:18
14
Non mi accapiglierei troppo sulla questione print vs echo. Date un’occhiata a questo link interessante.
http://phplens.com/lens/php-bo.....ng-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?)
# - postato da Davide - 03 Marzo 2010 - 14:00
15
La differenza principale si ha nell’uso dell’apice singolo o doppio!
16
@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
# - postato da davide - 04 Marzo 2010 - 10:11
17
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
# - postato da sLa - 04 Marzo 2010 - 10:15
18
Sempre usato echo. ho scoperto dell’esistenza del comando print solo poco tempo fa!! xD
# - postato da Kevin - 14 Marzo 2010 - 17:07







