Add to Google Reader or Homepage Prihlásiť sa k odberu RSS

Diskusia k článku

V. Podmienky a cykly v PHPZobraziť článok

Žiadne komentáre.

Naspäť naspäť

Pridať komentár

Koľko je na ruke prstov?

Náhľad článku

V. Podmienky a cykly v PHP

PODMIENKY V PHP, IF, ELSE, ELSEIF

If je príkaz ,ktorý sa používa v prípade ,že potrebujeme pri splnení (alebo naopak, pri nesplnení) podmienky vykonať ľubovoľný príkaz. Najjednoduchší zápis je: if (podmienka) príkaz, teda napr.:

<?
$a=1;
if($a != 0) echo $a . ' sa nerovná nule';
?>

Iný zápis použijeme najmä vtedy ak chceme po splnení podmienky vykonať viacej príkazov, ktoré uzavrieme do zložených zátvoriek {}.

if(podmienka) {
   príkaz;
   príkaz;
}

Ak nechceme použiť zložené zátvorky, použijeme príkaz endif. Nasledujúci príklad je ekvivalentný s predošlým :

if(podmienka):
   príkaz;
   príkaz;
endif;

Väčšinou však potrebujeme vykonať príkaz aj vtedy, ak sa podmienka nesplní. Na to použijeme príkaz else. Čiže ak sa podmienka nesplní, spustia sa príkazy za else. Viac už napovie ďalší príklad:

if(podmienka) {
   príkaz;
   príkaz;
}
else
{
   príkaz;
}

Tento príkaz je takisto možné ukončiť pomocou endif a to takým istým spôsobom ako v prípade if. Ale dvojbodku je nutné zadať nielen za if ,ale aj za else!

Ak je potrebné zadať dve a viac podmienok, použijeme na to príkaz elseif. Príkaz má potom nasledovný priebeh: Ak sa nesplní prvá podmienka (if) , nasleduje druhá podmienka (elseif) a keď sa nesplní ani tá, pokračuje sa príkazmi za else. Príkaz elseif môžme použiť viackrát za sebou.

if(podmienka) {
   príkaz;
}
elseif {
   príkaz;
}
   else
{
   príkaz;
}

Príkaz if môžeme vnárať do seba, nasledovným spôsobom:

if(podmienka) {
  if(podmienka) {
     príkaz;
  } else {
    príkaz;
 }
} else {
  príkaz;
}

CYKLY V PHP: WHILE, WHILE-DO, FOR

Cyklus má na začiatku príkazu (platí len pre while) podmienku. A pokiaľ je tá, splnená vykonávajú sa určité príkazy. Príkaz while má nasledovnú syntax:

while (podmienka) príkaz;

Pri príkaze while sa najprv vyhodnocuje podmienka, preto pri jej nesplnení cyklus neprebehne. Takisto ako pri if, môžeme aj pri while použiť zložené zátvorky { }, alebo variantu s dvojbodkou a ukončením – endwhile.

while (podmienka) {
   príkaz;
   príkaz;
}
 
//alebo
 
while (podmienka):
   príkaz;
   príkaz;
endwhile;

Cyklus môžme vykonať aj príkazom do-while. Jednoducho povedané znamená rob (do) príkazy pokiaľ (while) nie je splnená podmienka. Zásadný rozdiel oproti while je ten, že tu najprv prebehne cyklus a až potom sa skontroluje podmienka. Cyklus končí pri nesplnení podmienky.

Syntax má nasledovnú a nemá žiadnu inú alternatívu:

do {
   príkazy;
}
while(podmienka);

Ak vieme koľkokrát chceme prejsť cyklom, použijeme príkaz for. Jeho syntax je:

for (výraz1; výraz2; výraz3) príkaz;

Pri vyhodnocovaní tohto príkazu sa deje toto:

Vyhodnotí sa prvý výraz, potom sa vyhodnotí druhý výraz a ak je vrátená hodnota true prejde sa na príkazy a po ich vykonaní (čiže po prechode cyklom) sa vyhodnotí tretí výraz. A toto sa deje dovtedy pokiaľ druhý výraz vracia hodnotu true.
Keďže prvý výraz je vyhodnotený vždy používa sa na inicializáciu premenných. Druhý výraz je podmienka, nakoľko vracia booleovskú hodnotu true alebo false. A posledný tretí výraz sa používa na aktualizáciu premennej, resp. prvého výrazu.
Pri použití viacerých príkazov môžme použiť klasiku – zložené zátvorky, alebo dvojbodku a ukončenie endfor. Snáď to už nemusím rozpisovať.

Uvediem príklad pre lepšie pochopenie cyklu. Sú tam použité všetky uvedené príkazy a každá z nich vypíše čísla od 1 do 10.

<?
 
// while
$a = 1;
while ($a <= 10) {
   echo $a;
   $a++;
}
 
// while ,ale s ukončením endwhile - ekvivalent s predošlým zápisom
$a = 1;
while ($a <= 10):
   echo $a;
   $a++;
endwhile;
 
// použitie príkazu do-while - ekvivalent k predošl. zápisom
 
$a = 1;
do {
   echo $a;
   $a++;
}
while ($a <= 10);
 
// príkaz for - spraví to isté
 
for ($a=1; $a <= 10; $a++) {
   echo $a;
}
 
?>

CYKLUS FOREACH – PRECHÁDZANIE POĽA

Tento cyklus využijeme hlavne pri práci s poľom. Každým opakovanie cyklu prejde prvkom poľa a posunie ukazovateľ na ďalší prvok. Viac napovie príklad.

foreach(pole as hodnota) {
  prikazy ...
}
 
// Príklad:
<?
$pole = array("cervena","modra","zelena");
  foreach($pole as $hodnota) {
  echo "Hodnota :".$hodnota;
}
?>

Ďalšou možnosťou zápisu cyklu foreach je použitie takejto konštrukcie:

<?
 
$pole = array("kluc1"=>"cervena","kluc2"=>"zelena","kluc3"=>"modra");
 
foreach ($pole as $key => $value) {
   echo $key . ' = ' . $value;
}
 
// vystup bude "kluc1 = cervena, kluc2 = zelena, kluc3 = modra
 
?>

SWITCH Niekedy, ak máme viac podmienok sa nám oplatí využiť príkaz switch. Pred ním Vás však oboznámim s príkazmi :

  • break – ukončuje neuzavretý cyklus – cyklus okamžite končí, má nepovinný parameter a to číslo, ktoré určuje koľko cyklov sa má ukončiť – break(1)
  • continue – skáče na koniec neuzavretého cyklu a tým si vynúti ďalšie spustenie vnútorného cyklu – cyklus neopúšta.

Takže teraz naspäť k switch, jeho syntax je:

switch (výraz) {
  case hodnota1:
    príkazy1;
  break;
 
 case hodnota2:
  príkazy2;
 break;
 
 default:
  default príkazy;
}

Ako prvý sa vyhodnotí výraz a potom sa skontroluje jeho hodnota ak je to hodnota1 spustia sa príkazy1 a vykonávajú sa dovtedy kým sa nenarazí na break. Príkazy2 sa spúštajú analogicky ako príkazy1, teda ak má výraz hodnotu2. A príkazy za časťou default, ktorá je nepovinná sa vykonajú v prípade, že výraz sa nerovná ani jednej hodnote. Pri príkaze switch takisto môžeme použiť namiesto zložených zátvoriek dvojbodku a endswitch. Pre lepšie pochopenie pridávam nasledovný príklad:

<?php
 
//switch
$a = 2;
switch ($a) {
  case "1":
    echo "$a = 1";
    break;
 
  case "2":
    echo "\$a = 2";
    break;
 
  default:
    echo "$a sa nerovná 1 ani 2 !";
}
?>
RSS