Základy PHP 1 | PHP Slovníček

Cykly v PHP

Ilustrativní foto

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>" ;
?>

POZOR

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)

  Předchozí stránkaNásledující stránka