Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
PHP
PHP - Část VII. (Cykly)
5. července 2000, 00.00 | různé případy cyklů v PHP. Praktické ukázky jsou v našem seriálu samozřejmostí.
Cykly Potřebujeme-li v PHP provést
opakovaně některou část skriptu, máme k dispozici tyto příkazy: while
,
do-while
, for
. Těmto příkazům se říká příkazy
cyklů.
PŘÍKAZ WHILE
- tento příkaz slouží k opakování určité části skriptu, dokud platí
určitá podmínka. Je nejjednodušší z cyklických příkazů.
Říká se mu cyklus s podmínkou na začátku. Jeho syntaxe je následující:
while(podmínka)
{
jeden nebo více příkazů
}
Funkce je následující: nejprve je vyhodnocena podmínka
,
jestliže vrací FALSE, cyklus je ignorován, a pokračuje se v běhu skriptu.
Pokud podmínka
vrací TRUE, provedou se příkazy
v
cyklu, a znovu se vyhodnotí podmínka
. Příkazy cyklu jsou stále
vykonávány, dokud podmínka
vrací TRUE.
Př.
<?
$i = 0;
while($i < 10)
{
echo "$i<BR>";
$i++;
}
?>
Tento skript pod sebe vypíše čísla od 0
do 9. Stejně jako u příkazů pro větvení skriptů (if...), existuje i pro příkaz
while
alternativní syntaxe, která je vhodná pro psaní delších skriptů.
Vypadá takto:
<?
$i = 0;
while($i < 10):
echo "$i<BR>";
$i++;
endwhile;
?>
PŘÍKAZ DO-WHILE
- dalo by se říci, že tento příkaz je totožný s předcházejícím.
Určitý rozdíl zde však přece je. Podmínka je umístěna až na konci
cyklu, což má za následek, že příkazy cyklu jsou vždy vykonány alespoň
jednou, bez ohledu na podmínku. Po prvním vykonání se příkazy provádějí,
dokud platí zadaná podmínka. Syntaxe tohoto příkazu:
do
{
jeden nebo více příkazů
} while(podmínka);
Funkce: nejprve se provedou příkazy
, potom
se vyhodnotí podmínka
. Jestliže vrací TRUE, jsou příkazy
opakovaně vykonávány,
dokud tato podmínka
platí. Pokud podmínka
vrací FALSE, pokračuje se v běhu
skriptu a příkazy tohoto cyklu se už dále neopakují.
Př.
<?
$i = 0;
do
{
echo "$i<BR>";
$i++;
} while($i < 10);
?>
Tento skript rovněž vypíše pod sebe čísla
od 0 do 9. Kdybychom však podmínku
změnili na ($i
< 0)
, skript by vypsal jen 0. Pokud bychom použili předchozí příkaz
while
a u něj ve stejném skriptu změnili podmínku
na ($i < 0)
, skript by nevypsal nic. K příkazu do-while
neexistuje žádná alternativní syntaxe.
PŘÍKAZ FOR
- tento příkaz se používá zejména ve složitějších cyklech, protože
je ze všech cyklických příkazů nejvýkonnější. Při použití příkazu
while
, je většinou před cyklem umístěna definice nějaké čítačové proměnné.
Ta je na konci cyklu inkrementována nebo jinak aktualizována, potom je znovu
vyhodnocena podmínka a podle ní příkazy. Příkaz for
řeší tyto problémy již v základní
syntaxi a tím značně zpřehledňuje skripty. Syntaxe vypadá takto:
Popis funkce: před začátkem provádění skriptu je zinicializována
for(definice čítačové proměnné; podmínka; aktualizace čítačové proměnné)
{
jeden nebo více příkazů
}
čítačová proměnná
. Potom je vyhodnocena podmínka
. Pokud
vrací TRUE, provádějí se příkazy
cyklu, v případě, že vrací FALSE,
provádějí se ostatní příkazy skriptu mimo cyklus. Po každém provedení příkazů
cyklu se zaktualizuje
čítačová
proměnná
.Př.
<?
for($i = 0; $i < 10; $i++)
{
echo "$i<BR>";
}
?>
Tento skript pod sebe vypíše čísla od 0 do 9. I
pro tento příkaz existuje alternativní syntaxe:
<?
for($i = 0; $i < 10; $i++):
echo "$i<BR>";
endwhile;
?>
V zadání příkazu for
můžeme
jakýkoliv výraz vynechat. Např. for(;;) echo "Toto je nekonečno";
Poslední výhodou tohoto příkazu je možnost použití několika výrazů místo
jednoho. Tyto výrazy se potom oddělují čárkou. Takto můžeme např.
zinicializovat více proměnných najednou:
for($i = 0, $j = 10; $i < $j; $i++) jeden nebo více příkazů;
V příštím článku si vysvětlíme několik příkazů, které se mohou hodit v každém skriptu.
Obsah seriálu (více o seriálu):
Diskuse k článku
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007