Taguri PHP, instructiuni, punct si virgula
Intructiuni uzuale in PHP
4
echo, print, printf
In multe din scripturile scrise de incepatori (si nu numai) continutul rezultat in urma executiei este un text (care poate fi sau nu cod 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 print, echo si printf. Exista si alte modalitati dar aceste 3 instructiuni sunt cele mai uzuale si usor de folosit. Diferente intre ele exista (vezi http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40), dar ca idee generala print si echo fac acelasi lucru si 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 instructiune echo poate primi mai multi parametrii echo "Afisez", " un text din ", 4, " bucati"; # o singura intstructiune print poate primi doar unul print "Afisez"; print " un text din "; print 4; print " bucati"; # printf este folosita pentru a formata continutul, la fel ca in C/C++ printf( "Am %4.2f lei", 102.1234 ); // afiseaza Am 102.12 lei ?>
Instructiuni de atribuire
Alte instructiuni, la fel de uzuale ca cele de afisare, sunt cele de atribuire. Acestea sunt explicate mai pe larg in sectiunea "Variabile. Constante".
Instructiunea if
In afara de aceste 2 categorii, la fel de des intalnita este instructiunea if. Aceasta se numeste instructiunea de test si este folosita pentru a executa o secventa de cod in functie de valoarea de adevar a unei conditii. Exista mai multe forme, prezentate mai jos:
if( conditie ) instructiune 1;Aceasta forma permite executarea unei instructiuni numai daca este indeplinita o conditie. Conditia poate fi orice expresie de genul "2 mai mic decat 3", "variabila $a este definita", s.a. tradusa in limbajul PHP.
Instructiunea poate fi simpla (o singura instructiune) sau un bloc (mai multe instructiuni delimitate de acolade). Regula este ca atunci cand este nevoie sa se execute mai mult de o instructiune, trebuie creat un bloc (trebuie folosite acoladele).
Exemplu:
<?php if( 2 < 4 ) print "2 e mai mic decat 4"; if( 3 > 1 ) { print "3 e mai mare ca 1 \n"; print "<br />"; } ?>Atentie! Daca nu se foloseste un bloc in cadrul instructiunii if, atunci doar prima instructiune dintre cele existente se executa in urma evaluarii conditiei, pe cand celelalte se vor executa intotdeauna, indiferent de rezultatul verificarii. De exemplu:
<?php echo "Este 3 mai mic decat 2? <br />"; if( 3 < 2 ) print "3 < 2"; print "3 este mai mic decat 2"; ?>Codul de mai sus va afisa:
Este 3 mai mic decat 2? <br /> 3 este mai mic decat 2Pentru ca nu am inclus cele 2 instructiuni print intr-un bloc, a doua instructiune s-a executat indiferent de valoarea de adevar a conditiei. Codul corect (din punct de vedere logic) ar fi urmatorul, care contine un bloc de instructiuni:
<?php echo "Este 3 mai mic decat 2? <br />"; if( 3 < 2 ) { print "3 < 2"; print "3 este mai mic decat 2"; } ?>
Instructiunea if - else
De multe ori este nevoie sa se specifice o instructiune ce trebuie executata daca nu este indeplinita conditia. In acest caz se foloseste if - else.
if( conditie ) instructiune 1; else instructiune 2;
Aceasta forma permite executarea unei instructiuni atunci cand se indeplineste conditia sau executarea alteia diferite in caz contrar. Aceleasi observatii ca si mai sus se aplica.
<?php
echo "Este 3 mai mic decat 2? <br />";
if( 3 < 2 ) {
print "3 < 2";
print "3 este mai mic decat 2";
}
?>
este un exemplu unde ar trebui sa se vada cum indiferent de instructiune daca lipsesc {} tot ce urmeaza dupa prima instructiune este executat indiferent de conditie.
Cred ca trebuiesc sterse {} ca sa se afiseze ce ai spus ca va afisa
P.S. E foarte util site`ul chiar sunt incepator si chiar se explica totul pe intelesul incepatorilor. Felicitari
eu am facut C++dar nu stiu la ce se foloseste instr <br/>..ma poti ajuta?
"/n"-este folosit pentru a afisa pe un rand diferit..sau pentru ce..ca nu mai tin minte
pt cristina, in C++ nu exista <br/>, iar "/n" e folosit pt linie noua
stiu,e o diferenta foarte mare de timp intre intrebarea cristinei si raspunsul meu,dar poate le va fi de ajutor altora
tagul <br> semnifica linie noua in html
Adauga un comentariu la aceasta sectiune.
Siruri de caractere
9
In majoritatea scripturilor PHP se lucreaza cu bucati de text denumite siruri de caractere sau string-uri. PHP prezinta particularitati in modul in care sunt folosite stringurile, particularitati ce sunt prezentate in exemplele de mai jos.
Nota: sirurile de caractere reprezinta expresii (entitati ce au/returneaza o valoare). Asadar, un string poate fi folosit, pe langa, afisare, in atribuiri, la verificari, etc. In exemplele ce urmeaza s-a optat pentru afisarea sirurilor.
<?php print "Salut, straine!"; // sir simplu print 'Salut din nou!'; // sir simplu, delimitat de apostrof ?>Nota: in acest exemplu nu este nici o diferenta intre modul de afisare a sirurilor delimitate prin ghilimele si cele delimitate prin apostrof. Cu toate astea, PHP trateaza in mod diferit aceste caractere. Mai multe explicatii si exemple sunt prezentate in pagina "Variabile.Constante".
<?php print "Ma numesc \"Alex\"!"; // sir ce contine ghilimele, se foloseste \" print 'Porecla ta e Kelu\' ?'; // sir delimitat de ghilimele simple ce contine un apostrof print "Text afisat pe 3 linii: \n linia 2 si \n linia3"; // atentie, textul e afisat pe 2 linii in sursa HTML cu ajutorul \n print "Am castigat \$30 :D"; // caracterul dolar are un statut aparte // pentru a afisa semnul $ asa cum este se foloseste \$ print "Text cu \\backslash\\."; // caracterul \ (numit escape char) poate fi afisat intr-un // text daca este dublat; daca e folosit doar un \ PHP ar trata textul diferit: print "Text fara \backslash\- \nu se afiseaza corec\t."; print <<<TXT Text pe mai multe linii. Delimitatorii pot avea orice nume: TXT, START, etc, cu urmatoarele conditii - ambii delimitatori trebuie sa aiba acelasi nume - inainte de primul delimitator se foloseste <<< - delimitatorul de inceput nu trebuie sa fie urmat de spatiu sau alt caracter - delimitatorul de final sa fie la inceputul liniei (fara spatii inainte) - dupa delimitatorul final se pune punct si virgula ; TXT; // concatenarea (legarea) sirurilor print 'Sir1' . " legat de " . 'Sir2'; // Sir1 legat de Sir2 ?>
Imi pare o eroare : Parse error: parse error in C:\Program Files\EasyPHP 3.0\www\ma_numesc.php on line 15
Da, erau 2 probleme cu secventa de cod de mai sus:
- lipsea punct si virgula (;) la al treilea print
- exista un spatiu dupa "print <<<TXT" ceea ce facea ca interpretorul PHP sa dea eroare.
Problemele au fost corectate acum.
Nota: Pentru a vedea rezultatul scripturilor si a observa diferentele e bine sa te uiti in sursa paginii HTML (View -> View Page Source)
acea eroare a aparut iar:
spatiu dupa "print <<<TXT"
mie nu-mi citeste codul acela pe mai multe randuri si nici cu codul \n nu trece...doar cu <br /> sau <br>
Cred ca delimitatorii astia ajuta oarecum la o buna organizare a lucrului programatorului. Sau cel putin asa vad eu pentru moment lucrurile. Nici eu nu intelesesem initial, pana la urma am folosit varianta de mai jos si a mers
<?php
print <<< delimitator
Exemplu de sir care foloseste delimitatorul heredoc.
delimitator;
?>
Si mie imi apare erroare la linia 15 dar am modificat in orice fel si tot asa iese am si dat copy paste de pe site si tot asa :|
Dragut site, cam rar resurse bune in romana pentru a invata php.Poate ar trebui sa intri mai in detali la tutoriale , sa spui ce e heredoc, ce e nowdoc , la care dintre ele merge interpolare (ce inseamna interpolare) etc.Oricum succes in continuare.
problema este ca dupa primul TXT este un spatiu. Eliminarea lui conduce la disparitia erorii.
# o instructiune echo poate primi mai multi parametrii
echo "Afisez", " un text din ", 4, " bucati";
# o singura intstructiune print poate primi doar unul
print "Afisez";
print " un text din ";
print 4;
print " bucati";
si totusi
// concatenarea (legarea) sirurilor
print 'Sir1' . " legat de " . 'Sir2'; // Sir1 legat de Sir2
Ce sa inteleg din astea?
Prin concatenarea sirurilor se obtine in final un singur sir, care este tratat ca atare, de sine statator.
Asta este important de stiut, pentru ca "print" asa cum ai spus si tu poate primi un singur parametru, iar prin concatenarea mai multor secvente se obtine exact una singura. La executarea instructiunii print interpretorul nu va "sti" ca textul ce trebuie afisat provine din 3 bucati diferite.
La prima vedere e un pic derutant, dar pe masura ce vei parcurge restul capitolelor (Variabile, Functii) va fi mai usor de inteles.
Adauga un comentariu la aceasta sectiune.
Comentarii in PHP
0
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 # la fel ca mai sus - print "hello" - nu se executa /* comentariu cu delimitator de inceput si sfarsit */ print /* partea asta e ignorata */ "Salut!"; /* afiseaza Salut! */ ?>Nota: comentariile /* */ nu pot fi imbricate (unele in altele). Exemplul urmator nu este un cod valid.
<?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.
Terminarea executiei
2
<?php exit( "Script terminat" ); die( "Script terminat" ); print "Acesta linie nu se afiseaza niciodata"; ?>Nota: instructiunile die si exit sunt echivalente.
Adica ce e scris dupa exit( "Script terminat" );
die( "script terminat" );
nu se executa nicodata?
Exact. Poate acum nu le poti vedea un rost la aceste instructiuni (adica, de ce sa mai scri ceva in continuare daca nu va mai fi executat) dar cu siguranta vei intalnii ocazii cand va trebui sa opresti scriptul. Cel mai probabil folosind o conditie, in cazul in care se intampla ceva, opresti scriptul.
Adauga un comentariu la aceasta sectiune.
Nimic de afisat.
Adauga un comentariu la aceasta sectiune.