Cykly v PHP
Tip: Kódy si můžete vyzkoušet na PHP Playground.
1. Cyklus foreach a indexované pole
<?php
// Chceme vypsat (v HTML stránce) svá oblíbená jídla jako odrážkový seznam
$mojeJidla = ["pizza", "gyros", "kari nudle", "krupcová kaše"] ;
// Sestavíme HTML kód odrážkového seznamu
// - 1. otevírací značka seznamu
$mojeJidlaHTML = "<ul>" ;
// - 2. jednotlivé odrážky
foreach ($mojeJidla as $jidlo) {
$mojeJidlaHTML .= "<li>" . $jidlo . "</li>" ;
}
// - 3. uzavírací značka seznamu
$mojeJidlaHTML .= "</ul>" ;
// V proměnné $mojeJidlaHTML máme nyní HTML kód odrážkového seznam 4 položek
// - Nezávisí přitom, kolik jídel je v mém seznamu
// - Když přidáme do seznamu "steak", stejný PHP kód vypíše seznam 5 položek
// Seznam mohu vypsat do HTML stránky pomocí příkazu echo
echo $mojeJidlaHTML ;
?>
2. Cyklus foreach a asociativní pole
<?php
// Chceme vypsat (v HTML stránce) informace o filmu ze své sbírky
$mujFilm = [
'nazev' => "Společenstvo prstenu - Rozšířené vydání" ,
'rokVydani' => 2001 ,
'zanr' => "fantasy" ,
'studio' => "New Line Cinema" ,
] ;
// Sestavíme HTML kód tabulky
// - otevírací značka tabulky
$mujFilmHTML = "<table>" ;
// - jednotlivé řádky tabulky
foreach ($mujFilm as $key=>$value) {
$mujFilmHTML .= "<tr>" ;
$mujFilmHTML .= "<th>" . $key . "</th>" ;
$mujFilmHTML .= "<td>" . $value . "</td>" ;
$mujFilmHTML .= "</tr>" ;
}
// - uzavírací značka tabulky
$mujFilmHTML .= "</table>" ;
// V proměnné $mujFilmHTML máme nyní HTML kód tabulky se 4 řádky
// - Nezávisí přitom, kolik informací o filmech si eviduji
// - Když přidáme klíč 'reziser', stejný PHP kód vypíše tabulku s 5 řádky
// Tabulku mohu vypsat pomocí příkazu echo
echo $mujFilmHTML ;
?><?php
// Chceme vypsat číslice od 0 do 9
// - Snažíme se o obdobu kódu v Pythonu:
// for i in range(0,10):
// print(i)
// - Zápis v PHP je trochu jiný, ale máme tam "i", "0", "10" i "print"...
for ($i=0;$i<10;$i++) {
echo $i ;
}
// Tento kód nám ale vypíše "0123456789".
// My bychom chtěli každé číslo na vlastní řádek, jako to dělá Python.
// !!! Je potřeba si uvědomit, že generujeme HTML kód:
// !!! Je potřeba za každé vypsané číslo přidat HTML značku <br> (konec řádku)
for ($i=0;$i<10;$i++) {
echo $i . "<br>";
}
// To už je lepší.
// Ale když už jsme v HTML, chtěl bych čísla jako odrážkový seznam.
// - Prostě doplníme jiné HTML značky.
// - Je potřeba rozmyslet, které dáme do cyklu a které před/za vlastní cyklus:
echo "<ul>" ;
for ($i=0;$i<10;$i++) {
echo "<li>" . $i . "</li>";
}
echo "</ul>" ;
?>
Pokud budu chtít vypsat čísla až do 99, změním jen $i<10 na $i<100.
Dohodli jsme se, že je v PGS nebudeme potřebovat 😉
... ale víme, k čemu jsou dobré a jak je použít (stejně jako v Pythonu)