Kurz PHP (4.)

Cykly

Ne jednou nastane případ, kdy budete chtít, aby skript prováděl určitou akci dokud bude platit podmínka. V této situaci využijete cyklů, které tuto vlastnost umožňují.


While

	
	While (< výraz >)
	{
		< příkazy k provedení >;
	}
	

Cyklus while je jeden z nejpoužívanějších cyklů. Cyklus bude provádět < příkazy k provedení > do té doby, dokud bude < výraz > roven boolean hodnotě TRUE. Použití si ukážeme na ukázce.


<?

// proměnné $a přiřadíme hodnotu 1
$i = 1; 


/*
 Cyklus, který bude porovnávat hodnotu proměnné $i a 
 zatím co bude mít proměnná $i hodnotu menší nebo rovnu 10, bude 
 vypisovat její obsah. Nakonec zvětšíme hodnotu proměnné $i o 1, 
 jinak bychom vytvořili nekonečný cyklus.
*/

while ($i <= 10)
{
	// vypíše obsah proměnné $i a zalomí na nový řádek 
	echo $i . "<br>";
	
	$i++;  // zvětší obsah proměnné $i o 1
}

?>

Můžeme také využít alternativního zápisu.


<?

// proměnné $a přiřadíme hodnotu 1
$i = 1; 


/*
 Cyklus, který bude porovnávat hodnotu proměnné $i a 
 zatím co bude mít proměnná $i hodnotu menší nebo rovnu 10, bude 
 vypisovat její obsah. Nakonec zvětšíme hodnotu proměnné $i o 1, 
 jinak bychom vytvořili nekonečný cyklus.
*/

while ($i <= 10):

	// vypíše obsah proměnné $i a zalomí na nový řádek 
	echo $i . "<br>";
	
	$i++;  // zvětší obsah proměnné $i o 1
endwhile;

?>

do-while

	
	do
	{
		< příkazy k provedení >;
	}while (< výraz >);
	

Cykly do-while a While jsou si velmi podobné, ale rozdíl je v tom, že < výraz > je porovnáván až na konci skriptu. Díky této vlastnosti budou < příkazy k provedení >; vykonány alespoň jednou. Použití si ukážeme na ukázce.


<?

// proměnné $a přiřadíme hodnotu 1
$i = 1; 


/*
 Cyklus vypíše hodnotu proměnné $i, ale až na konci 
 cyklu se porovnává podmínka. Skript tedy jednou vypíše 
 obsah této proměnné.
*/

do
{
	// vypíše obsah proměnné $i a zalomí na nový řádek 
	echo $i . "<br>";
	
} while ($i < 1);

?>

Můžeme také využít alternativního zápisu.


<?

// proměnné $a přiřadíme hodnotu 1
$i = 1; 


/*
 Cyklus vypíše hodnotu proměnné $i, ale až na konci 
 cyklu se porovnává podmínka. Skript tedy jednou vypíše 
 obsah této proměnné.
*/

do
	// vypíše obsah proměnné $i a zalomí na nový řádek 
	echo $i . "<br>";
	
while ($i < 1);

?>

For

	
	for (< výraz1 >, < výraz2 >, < výraz3 >)
	{
		< příkazy k provedení >;
	}
	

Cyklus for se také řadí mezi jeden z nejpoužívanějších druhů cyklů. Na začátku provádění cyklu se určí (vyhodnotí) < výraz1 >. Následně se vyhodnotí < výraz2 > a pokud vrací (stejně jako u předešlých cyklů) hodnotu TRUE, provedou se < příkazy k provedení >. Na konci každé iterace se provede < výraz3 >.


<?

/*
 Nastavíme hodnotu proměnné na 0 a při každém "průchodu" cyklem
 ji zvětšíme o 1. Následně vypíšeme obsah této proměnné.
*/

for ($i = 0; $i <= 10; $i++)
{
	// vypíše obsah proměnné $i a zalomí na nový řádek 
	echo $i . "<br>";
}

?>

Můžeme také využít alternativního zápisu.


<?

/*
 Nastavíme hodnotu proměnné na 0 a při každém "průchodu" cyklem
 ji zvětšíme o 1. Následně vypíšeme obsah této proměnné.
*/

for ($i = 0; $i <= 10; $i++):

	// vypíše obsah proměnné $i a zalomí na nový řádek 
	echo $i . "<br>";
endfor;

?>

Foreach

	
	foreach (< pole > as < hodnota >)
	{
		< příkazy k provedení >;
	}
	

Cyklus foreach umožňuje procházet prvky < pole > a zpracovávat je. Při první iteraci je automaticky nastaven vnitřní ukazatel na první element pole. Vše si ukážeme na příkladě.


<?

/*
 V proměnné $pole vytvoříme pole a vložíme nějaké hodnoty.
*/
$pole = Array("město", "moře", "kuře", "stavení");

// cyklem foreach projdeme všechny prvky pole
foreach ($pole as $hodnota)
{
	// vypíše obsah proměnné $hodnota a zalomí na nový řádek 
	echo $hodnota . "<br>";
}

?>

Cyklus foreach můžeme také využít když používáme jako index pole klíče.


<?

/*
 V proměnné $pole vytvoříme pole a vložíme nějaké hodnoty.
*/
$pole = Array("A" => "město", "B" => "moře",
	      "C" => "kuře", "D" => "stavení");

// cyklem foreach projdeme všechny prvky pole
foreach ($pole as $klic => $hodnota)
{
	// vypíše obsah proměnné $hodnota a zalomí na nový řádek 
	echo $hodnota ." - klíč: $klic<br>";
}

?>

Break

Příkaz break můžete využít tehdy, pokud budete z nějakého důvodu chtít ukončit provádění cyklu.


<?

/*
 V proměnné $pole vytvoříme pole a vložíme nějaké hodnoty.
*/
$pole = Array("město", "moře",
	      "kuře", "stavení");

// cyklem foreach projdeme všechny prvky pole
foreach ($pole as $hodnota)
{
	
	/* pokud bude mít proměnná $hodnota hodnotu "kuře", 
	   cyklus přeruší svou činnost */
	if ($hodnota == "kuře")
	{
		break;
	}
	echo $hodnota ."<br>";
}

?>

Continue

Příkaz continue můžete využít tehdy, pokud budete z nějakého důvodu chtít ukončit provádění aktuální iterace cyklu.


<?

/*
 V proměnné $pole vytvoříme pole a vložíme nějaké hodnoty.
*/
$pole = Array("město", "moře",
	      "kuře", "stavení");

// cyklem foreach projdeme všechny prvky pole
foreach ($pole as $hodnota)
{
	
	/* pokud bude mít proměnná $hodnota hodnotu "kuře", 
	   cyklus přeruší provádění aktuální iterace */
	if ($hodnota == "kuře")
	{
		continue;
	}
	echo $hodnota ."<br>";
}

?>

Pro tento díl to bude vše. V příštím díle si povíme, co jsou to funkce.

Petr Rympler