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