PHP: echo vs. print

January 7th, 2007

Atunci 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

 

Post-uri cu tematica asemanatoare

Poate ai ajuns la acest post din intamplare sau printr-o recomandare; citeste pagina despre ciops (Andrei Diaconu) pentru a afla mai multe despre mine si blog. Daca ti-a placut articolul si blogul in general, poti avea in vedere abonarea la RSS feed for ciops.ro RSS prin serviciul/programul preferat de tine.

Parerea cititorilor

  • 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 …

Note: This post is over 5 years old. You may want to check later in this blog to see if there is new information relevant to your comment.