Descriere:Instructiuni conditionale if() else
Download:
Autor:
Sursa (Link-ul oficial):
Propria parere:Enjoy!
Tutorialul:
1. Utilizarea valorilor de tip adevarat / fals
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:
$a < 1;
Aceasta expresie conditionala foloseste operatorul <, care are, în esenta, aceeasi semnificatie ca în algebra. Expresia are valoarea TRUE daca si numai daca valoarea variabilei $a este mai mica decât 1; în toate celelalte cazuri, are valoarea FALSE.
Puteti forma expresii conditionale complexe prin unirea a doua expresii conditionale cu ajutorul unui operator logic. De exemplu, expresia urmatoare este adevarata daca ambele expresii conditionale care o compun sunt adevarate:
$a < 1 AND $b < 1
Cu alte cuvinte, expresia este adevarata daca atât variabila $a, cât si variabila $b au valori mai mici decât 1.
PHP furnizeaza un set de asemenea operatori relationali, prezentati pe scurt în tabelul de mai jos.
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.
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.
2. Scrierea instructiunilor "if"
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.
Cod: Selectaţi tot
If(conditie) {
Instructiune(1);
Instructiune(2);
..................
}Se observa ca acest set de instructiune se plaseaza intre acolade. Doar intr-un singur caz aceste acolade nu sunt necesare si anume: in cazul in care este scrisa doar o singura instructiune.
Daca rezultatul expresiei logice dintre paranteze rotunde este FALSE , setul de instructiuni dintre acolade nu se va executa, controlul programului va trece mai departe.
Iata inca un exemplu, practic:
<?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.
Utilizarea instructiunii "else"
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:
Cod: Selectaţi tot
If(conditie) {
Instructiune(1);
Instructiune(2);
..................
}
else {
Instructiune(3);
Instructiune(4);
..................
}Instructiunea asociata unei instructiuni if sau else poate fi ea însasi o instructiune if. O asemenea instructiune if se numeste "instructiune if imbricata".
Iata un exemplu de instructiune if imbricata:
<?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".
Instructiunile if imbricate pot deveni extrem de dificil de înteles daca numarul de instructiuni si nivelul de imbricare nu sunt relativ reduse. Deci trebuie sa le folositi cu economie.
O instructiune corelata atât cu instructiunea if, cât si cu instructiunea else, este instructiunea elseif. Când este folosita corect, poate fi mai simplu de înteles decât o instructiune if imbricata, logic echivalenta cu aceasta.
Iata un exemplu de instrutiune else if():
<?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.
Într-un caz general, cu o instructiune if si cu o instructiune else poate fi asociat un numar mult mai mare de instructiuni elseif. PHP evalueaza expresiile conditionale în mod succesiv, pornind de la expresia conditionala asociata instructiunii "if". PHP executa instructiunea asociata primei expresii conditionale care are valoarea TRUE; daca nici o expresie conditionala nu are valoarea TRUE, PHP executa instructiunea asociata cu instructiunea else. Este permisa omiterea instructiunii else, caz în care nu este executata nici o instructiune daca nici una din expresiile conditionale nu are valoarea TRUE.[/color][/b]

