Majoritatea programelor utile nu se comporta în exact acelasi mod la fiecare rulare a acestora, în schimb, programele iau decizii, executând uneori o operatie si alteori alta, în functie de circumstante.
Programele PHP iau decizii prin evaluarea unor expresii conditionale si executa instructiuni bazate pe rezultatele acestor evaluari. Expresiile conditionale sunt asimilate ca având una din doua valori: TRUE (adevarat) sau FALSE (fals). Uneori, expresiile conditionale se mai numesc si expresii booleene, în onoarea matematicianului care le-a studiat, George Boole. Constanta TRUE are valoarea l, iar FALSE are valoarea 0.
O modalitate utila de a forma o expresie conditionala consta în utilizarea operatorilor logici pentru compararea a doua valori numerice. Sa luam urmatorul exemplu:
Puteti folosi operatorii logici pentru compararea sirurilor; cu toate acestea, un sir care apare într-o expresie conditionala este convertit la o valoare numerica înainte de evaluarea expresiei. Deseori, se ajunge la rezultate neasteptate, în general, valorile sirurilor trebuie sa fie comparate folosind o functie de comparare a sirurilor; aceste functii vor fi explicate în lectiile urmatoare.
Operatori logici | |
Operator | Descriere |
$a < $b | - TRUE daca valoarea lui $a este mai mica decât valoarea lui $b. |
$a > $b | - TRUE daca valoarea lui $a este mai mare decât valoarea lui $b. |
$a >= $b | - TRUE daca valoarea lui $a este mai mare sau egala cu valoarea lui $b |
$a <= $b | - TRUE daca valoarea lui $a este mai mica sau egala cu valoarea lui $b |
$a = $b | - TRUE daca valoarea lui $a este egala cu valoarea lui $b. |
$a == $b | - TRUE daca $a si $b sunt identice; cu alte cuvinte, daca $a si $b au acelasi tip si aceeasi valoare |
$a != $b | - TRUE daca valoarea lui $a este diferita de valoarea lui $b |
$a !== $b | - TRUE daca $a si $b nu sunt identice; cu alte cuvinte, daca $a si $b nu sunt de acelasi tip si aceeasi valoare |
$x AND $y | - TRUE daca atât $x, cât si $y sunt adevarate |
$x && $y | - TRUE daca atât $x, cât si $y sunt adevarate. |
$x OR $y | - TRUE daca minimum una din expresiile $x sau $y este adevarata. |
$x || $y | - TRUE daca minimum una din expresiile $x sau $y este adevarata. |
$x XOR $y | - TRUE daca numai una din expresiile $x sau $y este adevarata. |
!$x | - TRUE daca $x este FALSE |
NOT $x | - TRUE daca $x este FALSE |
Retineti ca puteti prefixa o expresie conditionala cu operatorul !, care inverseaza valoarea "TRUE" sau "FALSE" a operandului sau.
Observati ca PHP foloseste doi operatori logici care executa aceeasi operatie (AND si &&) respectiv (OR si ||).
Cu toate acestea, operatorii difera din punctul de vedere al precedentei - caracteristica care determina ordinea în care sunt executate operatiile în timpul evaluarii expresiilor. Operatorii && si || au o precedenta relativ ridicata, în timp ce operatorii AND si OR au o precedenta relativ redusa. Este la fel ca in aritmetica unde, intr-o ecuatie ca aceasta: a + b * c se executa intai inmultirea si apoi adunarea, chiar daca ordinea lor este alta (daca nu sunt folosite paranteze). La fel si in PHP, se pot folosi paranteze rotunde pentru a controla ordinea executarii operatiilor.
Pentru comoditate, puteti forma expresii conditionale fara un operator logic. De exemplu, daca $a este o variabila numerica, puteti folosi expresia $a ca expresie conditionala. Expresia este considerata ca având valoarea FALSE daca valoarea variabilei $a este zero, respectiv valoarea TRUE daca valoarea variabilei respective este diferita de zero.
Daca folositi un sir ca expresie conditionala, expresia are valoarea FALSE daca sirul este vid sau daca are valoarea speciala "\0", care simbolizeaza un octet cu valoarea zero.
Similar, utilizarea unei valori nedefinite ca expresie conditionala determina obtinerea valorii FALSE. Daca folositi un tablou sau un obiect ca expresie conditionala, aceasta are valoarea FALSE daca tabloul sau obiectul sunt vide (fara vreo valoare); în caz contrar, expresia are valoarea TRUE.
Expresiile conditionale sunt esentiale pentru scrierea instructiunilor conditionale, prin care se iau decizii.
Una dintre cele mai simple si folosite instructiuni conditionale este instructiunea : if.
If(conditie) { Instructiune(1); Instructiune(2); .................. }- Dupa cum se observa dupa if urmeaza o pereche de paranteze rotunde in interiorul carora se plaseaza conditia, adica o expresie logica a carei rezultat poate fi TRUE sau FALSE. Daca si numai daca rezultatul expresiei logice (conditia) este TRUE se vor executa instuctiunile : Instructiune(1), apoi Instructiune(2), etc...
<?php $numar = 12; if ($numar > 10) { echo "Acesta este un numar mai mare decat 10"; } ?>- Atunci când este executat scriptul, instructiunea if evalueaza expresia conditionala $numar > 10, care este adevarata (TRUE) numai daca valoarea variabilei $numar este mai mare decât 10. Daca valoarea variabilei $numar este mai mare decat 10, se va executa instructiunea echo, in caz contrar programul va trece mai departe.
In general, limbajul PHP ignora spatiile albe. In mod conventional, o instructiune asociata unei instructiuni "if" este scrisa decalat în raport cu aceasta. Acest procedeu este recomandat deoarece prin utilizarea sa este facilitata citirea programului.
Sa presupunem ca doriti sa executati o instructiune atunci când o conditie este TRUE si o alta instructiune când conditia este FALSE. Instructiunea else va permite sa procedati astfel, dupa cum urmeaza:
If(conditie) { Instructiune(1); Instructiune(2); .................. } else { Instructiune(3); Instructiune(4); .................. }In acest din urma caz daca expresia logica din paranteze: conditie este adevarata se vor executa instructiunile: Instructiune(1); Instructiune(2); , iar daca valoarea expresiei logice : conditie are valoarea FALSE se vor executa instructiunile: Instructiune(3); Instructiune(4);
<?php $numar = 88; if ($numar > 10) { if ($numar > 100) { echo "Acesta este un numar mai mare decat 100"; } else { echo "Acesta este un numar mai mic decat 100, dar mai mare decat 10"; } } else { echo "Acesta este un numar mic"; } ?>Exemplul afiseaza mesajul "Acesta este un numar mai mare decat 100" daca valoarea variabilei $numar depaseste 100; în caz contrar, daca valoarea variabilei $numar este mai mare decât 10 si mai mica decat 100, se afiseaza mesajul "Acesta este un numar mai mic decat 100, dar mai mare decat 10". Daca valoarea variabilei $numar este mai mica sau egala cu 10, exemplul afiseaza mesajul "Acesta este un numar mic".
<?php $numar = 88; if ($numar > 100 ) { echo "Acesta este un numar mai mare decat 100"; } elseif ($numar > 10) { echo "Acesta este un numar mai mic decat 100, dar mai mare decat 10"; } elseif ($numar > 1) { echo "Acesta este un numar mic"; } else { echo "Acesta este un numar foarte mic"; } ?>Exemplul extinde functionalitatea exemplului anterior, afisând mesajul "Acesta este un numar foarte mic" pentru valori ale variabilei $numar mai mici sau egale cu 1.
<input type="number" name="points" min="5" max="80" />
#id { filter:alpha(opacity=40); /* for IE */ opacity:0.4; }
var num = 12.84567; alert( num.toPrecision(3) ); // 12.8
$lang =[10=>"PHP", 20=>"JavaScript", "site"=>"coursesweb.net"); shuffle($lang); var_export($lang); // array (0=>"coursesweb.net", 1=>"PHP", 2=>"JavaScript")
She is the best in our class. - Ea este cea mai buna din clasa noastra.
Él es el mejor en nuestra clase. - El este cel mai bun din clasa noastra.