[ 07. August 2000]
- Andrej_Chu
Cykly v PHP (PHP - Φas¥ 5)
Vetvenie programu pomocou cyklov si ukß₧eme v dneÜnej piatej Φasti nßÜho serißlu o scriptovacom jazyku PHP. Ukß₧eme si ako funguj· prφkazy ako WHILE, DO...WHILE, FOR, SWITCH a CONTINUE.
Cykly a ako na ne.
WHILE
Ide o najjednoduchÜφ typ cyklu. Mß podobn· syntax ako v C:
while (v²raz) prφkaz;
Prφkaz je vykonßvan² dovtedy, k²m je hodnota v²razu TRUE. Naz²va sa aj cyklus s podmienkou na zaΦiatku. V₧dy na zaΦiatku cyklu sa otestuje v²raz a v prφpade, ₧e hodnota je TRUE, vykonß sa prφkaz a opΣ¥ od zaΦiatku. V prφpade, ₧e potrebujeme vykona¥ viacero prφkazov (takmer v₧dy), musφme pou₧i¥ blok, teda prφkazy uzavrie¥ do zlo₧en²ch zßtvoriek:
while (v²raz) {
prφkaz1;
prφkaz2;
atd...
}
Cyklus while samozrejme tie₧ umo₧≥uje alternatφvnu syntax. Tß je podobnß, ako bola pre IF, tu nßm posl·₧i konÜtrukcia while(v²raz): a endwhile, priΦom syntax je nasledovnß:
while (v²raz):
prφkaz1;
prφkaz2;
atd...
endwhile;
DO..WHILE
Cyklus do..while je ve╛mi podobn² cyklu while. Rozdiel tkvie v tom, ₧e zatia╛ Φo v predchßdzaj·com prφpade bola podmienka testovanß na zaΦiatku, tu je to zase na konci. Z toho vypl²va, ₧e cyklus do..while musφ prebehn·¥ minimßlne raz, zatia╛ Φo pre cyklus while toto neplatφ. Syntax cyklu do..while je nasledovnß:
do {
prφkaz1;
prφkaz2;
atd...
} while (podmienka);
M⌠₧e sa sta¥, ₧e budete potrebova¥ cyklus, ktor² bude nekoneΦn² a bude sa da¥ ukonΦi¥ iba zvn·tra cyklu. Na to nßm posl·₧i prφkaz break:
do {
if (podmienka) break;
} while (0);
Posledn² riadok nßm zabezpeΦφ, ₧e cyklus sa nikdy neukonΦφ (0 je v₧dy vyhodnocovanß ako FALSE) a dß sa ukonΦi¥ iba v prφpade, ₧e je splnenß podmienka prφkazom break.
FOR
Cyklus for je jedn²m za najkomplexnejÜφch v PHP. Jeho syntax je opΣ¥ podobnß CΘΦku:
for (v²raz1; v²raz2; v²raz3) prφkaz1;
v²raz1 je vyhodnoten² (vykonan²) iba raz, na zaΦiatku cyklu. v²raz2 sl·₧i ako kontrolnß podmienka pre cyklus, pretoÄe je vyhodnocovanß na zaΦiatku ka₧dej iterßcie. V prφpade, ₧e je vyhodnotenß ako TRUE, je iterßcie vykonanß, ak FALSE, cel² cyklus konΦφ. v²raz3 sl·₧i hlavne na modifikßciu riadiacej premennej a je vykonan² po skonΦenφ ka₧dej iterßcie. Ka₧d² z t²chto v²razov je nepovinn², tak₧e konÜtrukcia cyklu for m⌠₧e vyzera¥ aj takto:
for (;;)
{
prφkaz1;
prφkaz2;
atd...
}
Samozrejme tu nesmiete zabudn·¥ na modifikßciu a kontrolu riadiacej premennej vo vn·tri a pred zaΦiatkom cyklu, inak sa ╛ahko m⌠₧e sta¥, ₧e sa zacyklφ.
Aj cyklus for mß svoju alternatφvnu syntax:
for (v²raz1; v²raz2; v²raz3):
prφkaz1;
prφkaz2;
atd...
endfor;
CONTINUE
Ide o Üpecißlny prφkaz, ktor² sl·₧i na skok na ∩alÜiu iterßciu. Jednoducho povedanΘ, ukonΦφ momentßlnu iterßciu skokom na koniec bloku cyklu a t²m sa zabezpeΦφ prechod na ∩alÜiu iterßciu. Tento prφkaz m⌠₧ete pou₧i¥ na vÜetky typy cyklov, teda
while, do..while aj for.
for (v²raz1; v²raz2; v²raz3) {
if (podmienka) continue;
prφkaz1; // tu sa pokraΦuje iba vtedy, ak podmienka nebola splnenß
prφkaz2;
atd...
}
SWITCH
Poslednou kontrolnou Ütrukt·rou, o ktorej si povieme, je switch. CΘΦkari si opΣ¥ prφdu na svoje, preto₧e syntax je zasa podobnß C. Switch sl·₧i na nahradenie po sebe id·cich podienok IF s rovnakou premennou v podmienke:
switch ($premenna) {
case 0:
print "premenna sa rovna 0";
break;
case 1:
print "premenna sa rovna 1";
break;
case 2:
print "premenna sa rovna 2";
break;
}
Ako vidφte, program skoΦφ v₧dy na t· vetvu, ktorß vyhovuje premennej uvedenej v zßtvorke a hodnote uvedenej pri case. Musφte si dßva¥ pozor a pou₧φva¥ prφkaz break, preto₧e k≤d je vykonßvan² v₧dy od nßjdenej vetvy a₧ po koniec bloku switch alebo k²m nenarazφ na prφkaz break. Preto sa tento prφkaz pou₧φva v ka₧dej vetve. Ak by tak nebolo a $premenna sa rovnala 0, boli by vykonanΘ vÜetky prφkazy v bloku switch.
Tak potrebn· (aj ke∩ z∩aleka nie vÜetku) Φas¥ te≤rie mßme za sebou a nabud·ce sa budeme venova¥ u₧ nejak²m praktick²m zßle₧itostiam.
|
|
|