php - pre začiatočníkov

Vytlač príspevok
Odporuč príspevok
Bookmark and Share PRIDAŤ NA VYBRALI.SME.SK

PHP Manuál : 4. podmienky a cyklus

Pozrieme sa na if-else-elseif-endif , while-do-for, switch ...
Doplnené (23-01-2008) o foreach ...

Navigácia

  1. Podmienky - if, else, elseif
  2. Cyklus - while, do-while, for
  3. Cyklus - foreach
  4. Switch

PODMIENKY - 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;
Napríklad :
$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;

Osobne využívam možnosť so zloženými zátvorkami. Zdá sa mi najelegantnejšia.

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;
}

Pre lepšie pochopenie podmienok pridávam príklad :
Príklad 11
<?php

$a=1;
if ($a != 0) echo "\$a sa nerovná nule! <br />";

//iný zápis if pri použití viacerých príkazov
$a=1;
if($a != 0) {
echo "\$a sa nerovná nule! <br />";
$b = $a * 2;
echo $b."<br />";
}

//použitie endif
$a=1;
if($a != 0) :
echo "\$a sa nerovná nule! <br />";
$b = $a * 2;
echo $b."<br />";
endif;

//použitie else
$a=1;
if($a != 0) {
$b = 2 / $a;
echo $b."<br />";
}
else
{
echo "\$a sa rovná nule , nie je možné deliť nulou. <br />";
}

//použitie elseif
$a = 3;

if($a == 1) {
echo $a;
}
elseif($a == 2) {
echo $a;
}
else {
echo $a."<br />";
}

//if v if (:
$pohlavie = "zena";
$meno = "Zuzka";

if ($pohlavie == "zena") {
 if ($meno == "Zuzka") {
 echo "Zuzka";
 }
 else {
 echo "Źena";
 }
}
else {
echo "Muž";
}

?>

CYKLUS - while, do-while, 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 je 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ôžme 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ť.
Vo výrazoch je možné použiť operátor "čiarka - ,".
for(výraz1 ,výraz1-2, výraz1-3;výraz2;výraz3) príkazy;

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.
Príklad 12
<?php

//while
$a = 1;
while ($a <= 10) {
echo $a;
$a++;
}
echo "<br />";

//while ,ale s ukončením endwhile - ekvivalent s predošlým zápisom
$a = 1;
while ($a <= 10):
echo $a;
$a++;
endwhile;
echo "<br /><br />";

//použitie príkazu do-while - ekvivalent k predošl. zápisom
$a = 1;
do {
echo $a;
$a++;
}
while ($a <= 10);
echo "<br />";

//príkaz for - spraví to isté

for ($a=1; $a <= 10; $a++) {
echo $a;
}

?>

foreach()
Tento cyklus využijeme hlavne pri práci s poľom. Každým cyklusom prejde prvkom poľa a posunie ukazovateľ na ďalší prvok poľa. Viacej napovie príklad.
Syntax :
foreach(pole as hodnota) {
prikazy ...
}

Príklad :
$pole = array("prve pole","druhe pole","tretie pole");
foreach($pole as $hodnota) {
echo "Hodnota :".$hodnota;
}


Vypíše :
"prve pole
druhe pole
tretie pole"


SWITCH

Niekedy ,ak máme viacej 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ôžme použiť namiesto zložených zátvoriek dvojbodku a endswitch. Pre lepšie pochopenie pridávam nasledovný príklad :
Príklad 11
<?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 !";
}

?>


Články

Predošlý článok : Rekapitulácia I
Nasledujúci článok : 5. Funkcie



Odkazy
Stiahnite si príklady vypracované v článku


php | stály odkaz

Komentáre

Pozor, na konci je potreba spočítať neľahkú matematickú úlohu! Inak komentár nevložíme. Pre tých lenivejších je tam tlačidlo kúzlo.



Prevádzkované na CMS TeaGuru spoločnosti Singularity, s.r.o., © 2004-2014