Cursuri online, WebDesign, html, css, php, mysql, linux | Invata-Online.ro
IntroducereScrierea scripturilor PHP elementareTipuri de siruri si variabileVariabile si operatori PHPUtilizare formulare HTML cu PHP, $ GET si $ POSTVariabile de mediu si eroriConstante si tipuri de variabileInstructiuni conditionale if() elseInstructiuni conditionale switchInstructiuni repetitive for() si while()Utilizare matrice ArrayUtilizare Array (matrice) (2)Creare tabel HTML din ArrayUtilizarea functiilorVariabile si referinte in functiiData si Timpul in PHPLucrul cu siruri (1)Lucrul cu siruri (2)Expresii regulate, regexUtilizarea variabilelor cookieLucrul cu fisiere (1)Lucrul cu fisiere (2)Lucrul cu fisiere (3)Utilizarea cataloagelor (Directoare)Utilizarea de sesiuni PHPOptiuni pentru utilizarea caracterelor specialeNotiuni fundamentale despre bazele de date si SQL (1)Notiuni fundamentale despre bazele de date si SQL (2)Notiuni fundamentale despre bazele de date si SQL (3)PHP MySQL Introducere si Tipuri de DatePHP MySQL utilizare MySQLiPHP MySQL INSERT INTOPHP MySQL SELECT, ORDER BYSelect in doua tabele MySQLMySQL INNER JOIN, LEFT JOIN, RIGHT JOINPHP MySQL WHERE si LIKEPHP MySQL UPDATEPHP MySQL DELETEPHP PDO Introducere si Conectari la Baze de DatePHP PDO exec (INSERT, UPDATE, DELETE) MySQLPHP PDO Select, fetchPHP PDO prepare si executePHP PDO setAttribute si beginTransactionPHP Functii Anonime ClosuresTrimitere date la o adresa de e mailTrimitere e mail cu tag uri si atasamentCreare imagini cu PHPCreare PDF cu PHPCreare PDF cu PHP (2)Utilizare FTP cu PHPPHP OOP Clase si Obiecte, Metoda constructorPHP OOP metode Accesor si DestructorOOP Constante, Proprietati si Metode StaticePHP OOP Clase extinse si MostenireMetode magice get, set, call, toStringOOP Clase abstract si interfaceFunctii cu Parametri object si arrayInlantuire mai multe metode in PHP OOPPHP getElementById si getElementsByTagNameLucru cu atribute HTML in PHPDocumente XMLLucru cu XML DOMLucru cu XML SAXPHP XML SimpleXMLUtilizarea bazelor de date folosind PHPUtilizarea bazelor de date folosind PHP (2)Lucrul cu baze de date MySQL, seturi de rezultateFunctii pentru ArrayFunctii PHP matematiceFunctii pentru lucru cu functiiFunctii pentru siruri (strings)Functii pentru fisiere si directoareMySQL Alias si functiiFunctii utile pentru lucrul cu imaginiFunctii PHP clase si obiecte

Instructiuni conditionale if() else

  • Invatati sa definiti si sa folositi valorile de tip adevarat/fals
  • Invatati sa întelegeti si sa scrieti instructiunile if si else

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.


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.

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.

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...
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:

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);
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.


Webdesign by Discant Solutions