Initierea in PHP - Structuri de control in PHP



Informatii 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.
Instrucțiunea 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 (<conditie-if>)
< instructiune-if>
[elseif (<conditie-elseif1>)
< instructiune-elseif1>
elseif (<conditie-elseifn>)
< instructiune-elseifn>
else
< instructiune-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 (<variabila-sau-expresie>)
{
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.


Responses

0 Respones to "Initierea in PHP - Structuri de control in PHP"

Trimiteți un comentariu

 
Return to top of page Copyright © 2012 | i-Learn2 Theme Converted into Blogger Template by Dominiq