vineri, 13 iulie 2012

Taguri PHP

Taguri , instructiuni, punct si virgula 

Codul PHP trebuie inclus in fisiere cu extensia .php ce vor fi deservite utilizatorilor finali si trebuie delimitat de restul continutului prin tagul de inceput <?php si tagul de sfarsit ?>. Practic tot ce se afla in interiorul acestor etichete va fi interpretat ca fiind cod-sursa PHP (cod ce va fi executat de interpretorul PHP). Textul din afara celor 2 taguri este lasat neschimbat, fiind ulterior interpretat de browser. Se pot folosi si alte etichete in functie de configuratia serverului web, dar acestea nu sunt recomandate
<?php
/* forma recomandata */
?>
 
<script language="php">
/* forma disponibila oricand, putin folosita */
</script>
 
<?
/* taguri scurte, acceptarea lor de catre web-server depinde de configurare */
?>
 
<%
/* taguri in stilul asp, acceptarea lor de catre web-server depinde de configurare */
%>
Codul PHP este format din instructiuni - comenzi date catre interpretor, in urma carora se executa ceva. Asa cum s-a mai spus, PHP este folosit in principal pentru a genera cod HTML, asa ca de cele mai multe ori instructiunile folosite sunt cele de afisare. In aplicatii mai complexe se pot insa folosi si instructiuni de conectare la bazele de date, de citire/scriere/manipulare fisiere, intructiuni de trimitere email-uri si altele. Instructiunile se pot grupa in blocuri delimitate de acolade { }. Aceste blocuri, numite si "instructiuni complexe" se comporta ca si cum ar fi o singura instructiune (vezi mai jos exemple de blocuri).
Toate instructiunile (in afara de blocuri) trebuie sa fie terminate cu punct si virgula ( ; ). Lipsa acestuia genereaza o eroare.

Afisarea textului in PHP    ! 

In multe din scripturile scrise de incepatori (si nu numai) continutul rezultat in urma executiei este un text (de obicei in format HTML). Pentru a obtine acest text, secventele de cod trebuie sa contina instructiuni explicite care sa "spuna" intrepretorului ce anume trebuie afisat.
Instructiunile de afisare sunt printecho si printf. Primele doua sunt echivalente si fac acelasi lucru (exista unele diferente de forma, vezi exemplul de mai jos, dar poate fi folosita oricare dintre ele); printf este folosita mai rar datorita sintaxei oarecum greoaie.
<?php
# cele 2 instructiuni de mai jos sunt echivalente
print "Text";
echo "Text";
 
# o singura instructiune echo poate primi mai multi parametri, separati prin virgula
echo "<br />", "Afisez", " un text din ", 4, " bucati";
 
# o singura intstructiune print poate primi doar unul
print "<br />";
print "Afisez";
print " un text din ";
print 4;
print  " bucati";
 
# printf este folosita pentru a formata continutul, la fel ca in C/C++
printf( "<br />Am %4.2f lei", 102.123456 ); // afiseaza Am 102.12 lei
?>
Ce afiseaza PHP?     
Rezultatul unui script PHP este de cele mai multe ori un text simplu in format HTML. Cu alte cuvinte, in majoritatea cazurilor PHP returneaza o pagina HTML ce va fi afisata in browser. La inceput, acest lucru poate genera confuzii, intrucat sursa HTML este diferita de ceea ce se afiseaza efectiv in browser.
Spre exemplu, fie urmatoarea secventa de cod:

<?php
print "Salut";
print "Acesta este un script simplu";
?>
Probabil v-ati astepta ca rezultatul sa fie un text afisat pe 2 linii. Salvand aceasta secventa intr-un fisier PHP si accesandu-l prin intermediul unui web-server, veti observa ca rezultatul este urmatorul:
SalutAcesta este un script simplu
Desi este confuz, rezultatul este corect. Codul PHP afiseaza doar caracterele care i-au fost indicate. Sfarsitul de linie reprezinta un caracter separat, ne-printabil, dar care controleaza cum apare textul pe ecran. In cazul nostru, nu s-a transmis acest caracter (numit si new-line) si prin urmare PHP nu l-a afisat.
Sa rescriem exemplul de mai sus pentru a se afisa si caracterul "sfarsit de linie"

<?php
print "Salut";
 
print "\n"; # se afiseaza caracterul "new-line" care determina trecerea la un rand nou
# randul nou va fi afisat in textul trimis catre browser
 
print "Acesta este un script simplu";
?>
Verificand iar in browser veti constata ca nu s-a schimbat nimic. La prima vedere. In realitate rezultatul este afisat pe 2 linii, in textul trimis de PHP catre browser. Intrucat pagina este interpretata ca fiind HTML, browserul ignora caracterele new-line. Pentru verificare vizualizati sursa paginii (meniul View din browser -> view source).
Pentru a ajunge la efectele dorite (acelea de a afisa un text pe 2 linii) trebuie folosit urmatoarea secventa:
<?php
print "Salut";
print "\n"; # acum se afiseaza caracterul care determina trecerea la un rand nou
# randul nou va fi afisat in textul primit de browser (vizibil in sursa HTML)
 
print "<br>"; # se afiseaza tagul BR ce va fi interpretat de browser ca 'linie noua'
# linia noua va fi afisata in pagina finala HTML dupa ce este interpretata de 
# browser si nu are nici o legatura cu \n
 
print "Acesta este un script simplu";
?>
Sursa paginii arata in felul urmator:
Salut
<br>Acesta este un script simplu
In browser nu apare tagul BR, intrucat acesta este interpretat ca sfarsit de linie. Caracterul "new-line" afisat de noi (in print "\n") este ignorat oricum. Rezutatul, asa cum se vede in fereastra browser-ului:
Salut
Acesta este un script simplu

Nota: Este foarte important sa se inteleaga diferenta dintre ceea ce se returneaza in urma executiei unui script PHP si ceea ce se afiseaza propriu-zis in browser. Pe scurt, PHP printeaza cod HTML care este afisat diferit de browsere.
De asemenea, trebuie inteles faptul ca functia print nu afiseaza textul pe mai multe linii daca nu se specifica acest lucru in mod express. Spre exemplu fie urmatoare secventa de cod:

<?php
print "1";
print "2";
print "3";
?>
Rezultatul va fi
123
S-a afisat doar ce s-a indicat, 3 caractere, pe o singura linie, fara spatii.
Un alt lucru important de retinut este faptul ca odata printat, un text nu mai poate fi "sters". Nu exista "undo" pentru un print. Se poate captura intregul continut ce se transmite la finalul executiei, dar nu se poate altera textul afisat de o instructiune print anume.
Intelegand aceste aspecte va va fi mai usor in lucrul cu PHP si in modul in care verificati rezultatele scripturilor voastre.
comentarii

Siruri de caractere     

In majoritatea scripturilor PHP se lucreaza cu bucati de text denumite siruri de caractere sau string-uri. Sirurile de caractere reprezinta expresii (entitati ce au/returneaza o valoare) si pot fi folosite, la afisare, in atribuiri, la verificari, etc.
In limbajul PHP, sirurile de caractere pot fi delimitate de ghilimele duble, ghilimele simple sau printr-o notatie speciala folosind operatorul <<< (numit heredoc).

<?php
print "Salut, straine! "; // sir simplu, delimitat de ghilimele duble
print 'Salut din nou! '; // sir simplu, delimitat de apostrof
 
// sir delimitat prin notatia speciala heredoc
print <<<SIR
Salut iar!
SIR;
?>
Nota: in acest exemplu nu este nici o diferenta intre modul de definire a sirurilor - toate cele 3 stringuri afisate sunt echivalente, indiferent ca au fost delimitate prin ghilimele, apostrof sau operatorul heredoc. Cu toate astea, PHP trateaza in mod diferit aceste moduri de delimitare. Mai multe explicatii si exemple sunt prezentate in pagina Operatii cu siruri.
Comentarii in PHP ! 
Comentariile sunt portiuni de cod care nu se executa. Sunt folosite de programatori de regula pentru a da diverse explicatii despre logica aplicatiei, variabile si altele. Comentariile nu afecteaza executia unui script si pot fi sterse din cod fara nici un efect.
<?php
// acesta este un comentariu. intreaga linie nu va fi luata in considerare (doar o linie)
// print "hello";
// linia de mai sus nu se executa
 
# la fel ca mai sus 
# print "hello";
# nu se executa
 
/* comentariu cu delimitator de inceput si sfarsit 
   se poate intinde pe oricate linii; se termina la 
   intalnirea marcajului de sfarit */
 
print /* partea asta e ignorata */ "Salut!";
 
/* afiseaza
Salut!
*/
?>
Nota: comentariile /* */ nu pot fi imbricate (inserate unele in altele). Exemplul urmator nu este un cod valid.
<?php
// exemplu gresit de comentariu PHP
/* comentariu /* altul */ inapoi la primul */
?>
Este un lucru foarte util sa folositi comentarii in cod pentru a explica modul de rezolvare a problemei abordate, sau pentru a da detalii despre operatiile efectuate. Acestea va vor ajuta mai tarziu daca veti vrea sa modificati codul scris, sau vor oferi altor persoane informatii (valoroase) despre cum ati gandit codul respectiv.
http://php.punctsivirgula.ro/

Niciun comentariu:

Trimiteți un comentariu