PHP: echo vs. print
January 7th, 2007Atunci cand am inceput sa invat PHP, la un moment dat mi-am pus problema diferentei dintre functiile echo si print. Probabil nu am avut acces la vreun calculator cu internet in momentul respectiv, dar mi-am adus aminte azi si am facut putin research. Ce am invatat in urma cautarilor:
echo – afiseaza expresii separate prin virgula. Nu exista spatii intre expresii si nici nu se trece la randul urmator odata ce s-a terminat afisarea. In multe locuri se sustine ideea ca echo ar fi putin mai rapida decat print, dar nu am nici o sursa oficiala, doar pareri. Desi in php manual este specificat faptul ca nu este o functie (nu necesita paranteze), este definita ca o functie void, adica nu returneaza valoare.
$var = echo "ceva";
Atribuirea de mai sus nu este valida, va da o eroare la afisare.
print se diferentiaza de echo prin doua caracteristici: este o functie de tip int (intotdeauna returneaza 1) si nu afiseaza decat o expresie (spre deosebire de optiunea virgulelor din echo). Codul de mai jos este valid:
$var = print "ceva"; print $var; // ceva1
Trebuie mentionata si diferenta dintre single quote (‘) si double quote(“) la afisare. Ghilimeaua britanica va afisa toate caracterele, iar cea dubla va inlocui variabilele din interiorul textului cu valoarea retinuta.
$bautura = "cola";
echo "Eu beau $bautura"; // Eu beau cola
echo 'Eu beau $bautura'; // Eu beau $bautura


Flo
09/01/2007 19:53
Ba ej nebun, d`aia nu`mi iesea mie :-?
:))
Cineva care a facut PHP acu 5 ani si nu mai are nevoie
19/01/2007 0:27
echo nu e o functie, e un “language construct”.
atribuirea nu e valida din alt motiv (nu din cauza ca ar returna void).
gandeste-te putin prin prisma constructorilor in C++. din un constructor nu poti returna o valoare, se returneaza implicit *this. in acest sens constructorii nu sunt functii in adevaratul sens al termenului …