Stránky neboli dlhú dobu aktualizované. Môžu obsahovať nepresné alebo neaktuálne informácie.
Hľadanie
Rozšírené vyhľadávanie
TOP 7 - stránky
Napaľovacie programy - 108 198x
Free Pascal - Úvod - 65 896x
Lazarus - Kreslenie - 47 461x
Free Pascal - Začiatky - 44 750x
Free Pascal - Podmienky - 37 104x
Free Pascal - Cykly - 36 354x
Internetové prehliadače - 36 216x
Nové v diskusii
Free Pascal - Cykly - štvrtok 31.3.
Lazarus - Začíname - piatok 25.3.
Anketa - streda 2.3.
Navigácia: Tvorba Webu > PHP - Cykly

PHP - Cykly

Cyklus v PHP je opakovanie daných činností, kým platí nejaká podmienka. Existuje cyklus s podmienkou na začiatku, na konci a iné, zložitejšie typy.

Podmienka na začiatku

V jazyku PHP sa základný príkaz na cyklus volá while.

while (podmienka)
 príkaz;

Príkaz sa bude vykonávať dovtedy, kým je podmienka pravdivá. Ak chceme vykonať viac príkazov, dáme ich do zložených zátvoriek.

$cislo = 1;
while ($cislo <= 15) {
 echo "$cislo ";
 $cislo++;
}

Príklad vypísal čísla od 1 do 15.

Podmienka na konci

Podmienku môžeme testovať aj na konci cyklu.

$mesiac = 14;
do {
 echo "Testujem";
 if ($mesiac <= 12)
  echo "$mesiac. mesiac je platný. ";
 $mesiac++;
} while($mesiac <= 12);

Keďže podmienka sa testuje až po vykonaní príkazov, je zaručené, že príkazy sa vykonajú aspoň raz. V tomto prípade sa vypíše nápis Testujem.

Cyklus for

Príkaz for má v PHP-čku veľa možností, je to však len inak zapísaný cyklus while. Kód

začiatok;
while (podmienka) {
 príkazy;
 ďalšie_príkazy;
}

je možné zapísať ako

for (začiatok; podmienka; príkazy) {
 ďalšie_príkazy;
}

Najprv jednoduchý príklad:

for ($i = 30; $i > 0; $i--)
 echo $i." ";

Výsledkom je klesajúci rad čísel od 30 do 1.

Ak je príkazov v jednoduchých zátvorkách viac, oddelíme ich čiarkami.

for ($a = 1, $b = 5; $a <= 5; $a++, $b--) {
 echo "$a krát $b = ".($a*$b)."<br>";
 echo "$a delené $b = ".($a/$b)."<br>";
}

Jednotlivé časti príkazu for je možné vynechať. Ak vynecháme podmienku, bude stále rovná true. Toto je najjednoduchší spôsob, ako vyvolať nekonečný cyklus:

for(;;);

Nekonečný cyklus sám o sebe nebýva užitočný.

Zastavenie cyklu

Príkazom break náhle zastavíme cyklus.

$teplota = 70;
// 1 je vždy pravdivá hodnota
while (1) {
 echo "Aktuálna teplota: $teplota K<br>";
 $teplota -= 10;
 if ($teplota < 0) {
  echo "Chyba, t nemôže byť < 0 Kelvinov.";
  break;
 }
}

Ak za break dáme medzeru a číslo, ukončíme tým daný počet vnorených štruktúr.

echo '<table border="1">';

for ($x = 1; $x <= 5; $x++) {
 echo "<tr>"; // nový riadok

 for ($y = 1; $y <= 4; $y++) {
  // nový stĺpec
  echo "<td>$y</td>";
  if ($x == 3 && $y == 2)
   break 2; // ukončenie obidvoch cyklov for
 }

 echo "</tr>"; // koniec riadku
}

echo '</table>';

Po vypísaní druhého stĺpca v treťom riadku tabuľky sa cyklus úplne ukončí.

Pokračovanie v cykle

Príkaz continue preskočí rovno na ďalšie opakovanie (iteráciu) cyklu. Nasledujúci skript vypíše všetky nepárne čísla od 1 do 25:

$i = 0;
while ($i < 25) {
 $i++;
 if ($i % 2 == 0)
  continue;
 echo "$i ";
}

Podobne ako pri break s medzerou a číslom, continue x preskočí na x-tý vnorený cyklus.

Alternatívne formy

Všetko sa dá zapísať mnohými spôsobmi a PHP je v tom majster. Miesto zložených zátvoriek, ohraničujúcich viacero príkazov cyklu, môžeme používať dvojbodku a endwhile, resp. endfor.

$text = "-";
while ($text != "----"):
 echo $text;
 $text .= "-";
endwhile;
Hodnotenie
1 2 3 4 5 (ako v škole)
Priemerná známka: 2,73
Diskusia k tejto stránke Príspevok na túto tému zatiaľ neexistuje. Môžete pridať prvý z nich!
Prejsť do diskusie»
2005-2012, Matúš Sulír, matus.sulir (zav) gmail bodka com. Gen.: 0,024 s. Valid XHTML, CSS.