Vetvenie a cykly

Porovnanie :: Perl | Python

If...Else a ElseIf

if (výraz1)
{
  // telo štruktúry if
}
[elseif (výraz2)
{
  // telo štruktúry elseif
}]
[ ... ]
[else
{
  // telo štruktúry else
}]
[ ... ]

Pokiaľ má výraz1 hodnotu TRUE, vykonaj telo štruktúry if. Inak pokiaľ má výraz2 hodnotu TRUE, tak vykonaj telo štruktúry elseif. Inak vykonaj telo štruktúry else.

Príklad:

<html>
<body>

<?php
// tri vetvy programu
if ($n < 0)   // pre $n < 0
  echo "$n je záporné.";
elseif ($n == 0)   // pre $n == 0
  echo "$n je nula.";
else   // pre $n > 0
  echo "$n je kladné.";
?>

</body>
</html>

Switch, case

switch (výraz)
{
  case hodnota 1:
    // telo pre hodnotu 1
  break;
  ...
  case hodnota N:
    // telo pre hodnotu N
  break;
  default:
    // telo pre všetky ostatné hodnoty
}

Za kľúčovým slovom switch je v zátvorke výraz, ktorý je najskôr vyhodnotený. Podľa tejto hodnoty je v tele štruktúry switch nájdené také kľúčové slovo case, za ktorým sa uvedená hodnota rovná hodnote výrazu. Beh skriptu potom pokračuje v tele pre túto hodnotu. Ukončenie behu v rámci štruktúry switch je možné buď pomocou break alebo continue.

Telo za kľúčovým slovom default (nie je povinné) je vykonané vtedy, keď nie je pri žiadnom case nájdená hodnota odpovedajúca parametru výraz.

Príklad:

<html>
<body>

<?php
switch ($x)
{
case 1:
  echo "Číslo 1";
  break;
case 2:
  echo "Číslo 2";
  break;
case 3:
  echo "Číslo 3";
  break;
default:
  echo "Nie je z rozmedzia 1 až 3";
}
?>

</body>
</html>

while, do-while

while (výraz)
{
  // telo cyklu while
}
do
{
  // telo cyklu do-while
} while (výraz)

Pred každým vstupom do tela cyklu je vyhodnotený výraz. Ak nadobudne hodnotu FALSE, je cyklus ukončený a telo sa už nevykoná.

Cyklus do-while je totožný s cyklom while až na jednu výnimku. Najprv sa vykoná vlastné telo cyklu a až potom je vyhodnotený výraz.

Príklad:

// vypíše: 0 1 2
<html>
<body>

<?php
$i=0;
while ($i < 3)
{
  echo $i++, " ";
}
?>

</body>
</html>

for

for (výraz1; výraz2; výraz3)
{
  // telo cyklu
}

Parameter výraz1 sa vykoná raz na začiatku, inicializuje premenné, výraz2 je vyhodnocovaný pred každým vstupom do tela cyklu, ak má honotu FALSE, cyklus je ukončený a telo sa už nevykoná. Parameter výraz3 sa vykoná po každom dokončení tela cyklu.

Príklad:

// vypíše: 0 1 2
<html>
<body>

<?php
for ($i=0; $i<3; $i++)
  echo $i, " ";
?>

</body>
</html>

foreach

// 1. variant: zaujímajú nás len hodnoty poľa
foreach (pole as hodnota)
{
  // telo cyklu
}
// 2. variant: zaujímajú nás tiež hodnoty kľúčov poľa
foreach (pole as kľúč => hodnota)
{
  // telo cyklu
}

Cyklus foreach prechádza pole reprezentované výrazom pole.

Pri použití 1. variantu sú v tele cyklu v premennej hodnota k dispozícii postupne hodnoty všetkých elementov v poli.

V 2. variante sú naviac v tele cyklu v premennej kľúč postupne hodnoty všetkých odpovedajúcich kľúčov.

Poznámka:
Od PHP 5 je možné okrem polí prechádzať aj objekty. Elementy objektov sú v takom prípade ich atribúty.

Príklad:

// vypíše: 1 2 3
<html>
<body>

<?php
$pole = array(1, 2, 3);
foreach ($pole as $prvok)
{
  echo $prvok, " ";
}
?>

</body>
</html>