Devino si tu omul cautat din zona ta ...
Pentru a-ti dezvolta
afacerea!
Click aici
Pentru a-ti dezvolta
cariera profesionala!
Click aici
Pentru a-ti gasi
un job!
Click aici

Structuri de control in PHP

George
Domeniu : Activitati de intermediere a tranzactiilor financi...
Meserie : Programator de sistem informatic
Localitate : Bucuresti / Bucuresti
Click aici
sa vezi lista
Profesionistilor.
Click aici sa
vezi toti profestionistii
din zona ta.

phpbase_logo_300x300Informatii utile pentru incepatori

Un script PHP este in esenta o insiruire de instructiuni. Instructiunile pot fi de mai multe feluri: atribuiri, apeluri de functii, structuri de control sau chiar instructiunea vida. Aceste instructiuni sunt delimitate la finalul lor de catre semnul punct si virgula. Totodata ele pot fi grupate intr-o singura instructiune compusa, care la randul ei devine o instructiune de sine statatoare, ingloband mai multe instructiuni simple intre doua acolade.

Un exemplu: DECIZIA

In crearea unui script, sau in general a oricarui program, va veti intalni cam in 100% din cazuri cu luatul de decizii. Sau mai bine zis cu scris cod care sa ia decizii pe loc in momentul rularii aplicatiei respective. Desi rudimentara, este una din tehnicile de baza in programare (alaturi de iteratie), fara de care probabil programarea, daca ar fi existat, ar fi fost o meserie destul de greoaie. Se bazeaza pe faptul ca in timpul executiei se poate dori executia unor anume instructiuni in detrimentul altora in functie de, sa zicem, niste parametrii proveniti de la utilizatori, deci de a lua o decizie: ce instructiune, sau set de instructiuni, sa execut? Exista doua structuri de control care va pot ajuta in luarea acestor decizii: if si switch.

Instructiunea IF-ELSE-ELSEIF este o instructiune intalnita in majoritatea limbajelor de programare si mai este intalnita sub denumirea de instructiunea decizionala simpla. Astfel aceasta da posibilitatea de a alege dintre doua sau mai multe posibilitati de executie a codului, folosind-se de niste conditii testate in prealabil. Formatul general al acesteia este:

if ()

[elseif ()

elseif ()

else
]


Efectul acestei instructiuni este urmatorul: se evalueaza conditia din cadrul ramurei if, daca aceasta are valoare logica de TRUE, atunci se executa instructiunea imediat urmatoare. In caz contrar se trece la prima ramura elseif (daca exista) testandu-se conditia si executandu-se instructiunea corespunzatoare in caz ca aceasta se evalueaza la TRUE. Procesul continua pentru toate ramurile elseif pana cand sunt terminate sau pana la prima conditie evaluata la TRUE. In caz ca nici una nu va fi gasita TRUE, se va executa instructiunea de pe ramura else, daca exista. De remarcat este faptul ca se pot defini oricat de multe ramuri elseif si doar una if sau else, si ca evaluarea la TRUE a unei conditii face ca execu?ia sa iasa din aceasta structura de control. Totodata trebuie mentionat ca oricare din ramurile definite suporta in corpul lor o singura instructiune; in cazul in care se dore?te executia mai multor instruc?iuni acestea se pot grupa intr-o instruc?iune compusa.

Iata niste exemple, pur didactice:

$number = 27;
if ($number % 2 == 0)
echo 'Numarul este par';
else
echo 'Numarul este impar';
/*
structura care foloseste si elseif
*/
if ($number % 3 == 0)
echo 'Numarul este divizibil cu 3';
elseif ($number % 3 == 1)
echo 'Numarul nu este divizibil cu 3, restul impartirii este 1';
else
echo 'Numarul nu este divizibil cu 3, restul impartirii este 2';


In cazul in care o instruc?iune IF ar contine multe ramuri elseif, scrierea lor ar putea deveni greoaie, precum citirea si in?elegerea lor. De aceea PHP dispune si de o instructiune decizionala multipla: SWITCH. Switch are avantajul ca permite testarea unei variabile, sau a unei aceleiasi expresii cu mai multe valori si sa execute o serie de instructiuni in caz ca acesta ar fi egal cu una din valorile con?inute in ramurile case.

switch ()
{
case var1:
instructiune1;
[break;]
[case var2:
instructiune2;
[break;]
case varn:
instructiunen;
[break;]]
[default:
instructiune;]

}
Iata si un exemplu concret:
$number = 27;
switch ($number % 3)
{
case 0:
echo 'Numarul este divizibil cu 3';
break;
case 1:
echo 'Numarul nu este divizibil cu 3, restul impartirii este 1';
break;
case 2:
echo 'Numarul nu este divizibil cu 3, restul impartirii este 2';
break;

}

Spre deosebire de lantul de if-uri care se pot forma, instructiunea switch este mult mai robusta, atat prin modul de scriere dar si prin modul de lucru. Difera de instructiunea if prin faptul ca expresia este evaluata o singura data la inceput si apoi este verificata cu toate valorile intalnite in ramurile case pana cand acestea corespund. Poate exista si o ramura default, care va fi executata cand nici una din valorile din case nu corespund cu valoarea evaluata. Instructiunea break este folosita pentru a evita executarea mai multor ramuri in cazul in care o valoarea expresiei evaluate este intalnita in una din ramurile case.

Consideram urmatorul exemplu:

switch ($number % 3)
{
case 0:
echo 'Numarul este divizibil cu 3';
case 1:
echo 'Numarul nu este divizibil cu 3, restul impartirii este 1';
case 2:
echo 'Numarul nu este divizibil cu 3, restul impartirii este 2';

}

Desi cu valoarea nula in practica, exemplul de mai sus daca v-a primi un numar divizibil cu zero si va afisa mesajele (sau executa intructiunile) de pe toate ramurile existente sub prima ramura pana cand va intalni o instructiune break, sau, cum e si cazul nostru, pana la finalul structurii. Totusi, un exemplu care ar avea ceva logica si care ar scoate in evidenta lipsa folosirii de break, ar fi urmatorul:
switch ($number % 3)

{
case 0:
echo 'Numarul este divizibil cu 3';
break;
case 1:
case 2:
echo 'Numarul nu este divizibil cu 3';

}

In caz ca expresia se va evalua la valoarea 1 scriptul va executa instructiunile din ramura cu valoarea 1 (in cazul nostru nici unul) si instructiunile din ramura cu valoarea 2. Procesul ar fi continuat daca ar fi existat si alte ramuri.

Alte articole din aceeasi tema:

Dariana Officiel

toxigene

Raspunde #1 | toxigene | 03-06-2009

Ca si completare poate era bine sa amintesti aici si de "inline if". Structura decizionala folosibila direct in expresii. ( conditie-if ? rezultat-true : rezultat-false ) Functionare: Se evalueaza expresia conditie-if. Daca este adevarata se returneaza rezultat-true altfel rezultat-false. Exemplu: echo ( ( $number % 3 == 0 ) ? "Numarul este divizibil cu 3" : "Numarul nu este divizibil cu 3" ); Observatie: In locul rezultatelor se poate folosi alta structura "inline if" si tot asa ... astfel se pot forma structuri arborescente de "inline if".


Spune parerea ta!

Trimite

Scrieti-ne!


Informatiiprofesionale este inscris in Registrul de Evidenta a Prelucrarilor de Date cu Caracter Personal sub Nr. 22490
Informatii Profesionale © Toate drepturile rezervate

Termeni si conditii de utilizare | Publicitate