Dvanáctý díl o PHP – cykly

Dnes se podíváme na cykly, neboli smyčky. Příkazy cyklů jsou v každém programovacím jazyce a jsou velmi důležité, dalo by se říci, že jsou asi nejdůležitější. Cyklus je něco, co se opakuje, v reálném světě například dny, týdny, měsíce. Cykly si budeme ukazovat dva, ten první který se opakuje do té doby, dokud se nedostane na určitou podmínku (ano může jít i do nekonečna, bohužel v takové chvíli se program „zasekne“), jedná se o cyklus WHILE a nebo cyklus, který lze trochu lépe řídit a nastavit mu třeba počet opakování, tedy cyklus FOR.

Cyklus FOR

Ve webových stránkách se velmi často setkáváme s cykly a ani o tom nevíme, typický představitelem cyklu jsou tabulky. Možná také patříte k té generaci, která ve třetí třídě dostala tabulku s malou násobilkou (viz. obrázek), čísla co jsme chtěli násobit jsme našli nejprve vpravo a poté nahoře, a poté sjeli prsty do míst kde se protínaly a měli výsledek. Vedle obrázku najdete, jak něco takového vytvořit pomocí cyklu. Možná si právě teď řeknete, že je to neuvěřitelně složité, ale nebojte, hned Vám to vysvětlím 😉

 

   <?php$b = 11;

echo „<table border=\“1\“>“;

for($a=1;$a<$b;$a++){

echo „<tr>“;

for($c=1;$c<$b;$c++){

echo „<td>“ . $c * $a . „</td>“;

}

echo „</tr>“;

}

echo „</table>“;

?>

Nyní si kód trochu rozebereme, jedná se o cyklus FOR, tedy každý FOR má předem nastaven počet opakování se a zapisuje se:

for($promenná = číslo_kde_bude_začínat ; $promenná < $maximální_hodnota ; $o_kolik_se_promenná_má_zvyšít) { OBSAH CYKLU  }

První proměnná je tedy číslo, na kterém to vše začíná, v druhém místě je že pokud je proměnná menší než druhá proměnná, cyklus se bude vykonávat tak dlouho, dokud nebude rovná a nebo vyšší a ve třetím místě je, o kolik se má první proměnná zvýšit.

To, co je obsaženo v cyklu se bude pořád a dokola opakovat, dokud cyklus neskončí, tedy pokud to cyklu dáte vypsat text „AHOJ“ a cyklus se bude opakovat 10x, budete mít na stránce vypsáno 10x za sebou AHOJ.

For je tedy cyklus s parametrem, na rozdíl od cyklu WHILE, který je s podmínkou je u něj jasné, kolikrát se bude opakovat.

Cyklus WHILE

Jak jsem již zmínil, cyklus WHILE je s podmínkou a není u něj jasné, kdy skončí, má tedy trochu jiné využití než předchozí cyklus, například načítání obsahu databáze, kdy třeba nevíme, kolik dat potřebujeme načíst a tak načítáme vše, dokud tam něco je, další kde se dá WHILE použít je načítání obsahu souboru, kdy nevíme, kolik obsahuje řádku a tak načítáme do té doby, dokud se nedostaneme na EOF (End Of File).

Nicméně načítat soubory ani obsah databáze zatím neumíme a tak předchozí příklad ve kterém jsme si vytvořili tabulku pro třeťáky přepíšeme do cyklu WHILE a to takto:

<?php

$b = 10;

echo „<table border=\“1\“>“;

$a = 0;

while($a<$b){

$a++;

echo„<tr>“;

$c = 0;

while($c<$b){

$c++;

echo„<td>“ . $c * $a . „</td>“;

}

echo„</tr>“;

}

echo„</table>“;

?>

Příklad možná vypadá složitě, popravdě, nezvolil jsem úplně nejjednodušší příklad, nicméně takto by to dopadlo, pokud bychom chtěli to samé v cyklu WHILE, co je důležité a na co nesmíme zapomenou na rozdíl od cyklu FOR je to, že než znovu začne vnitřní cyklus, je potřeba jeho proměnnou vrátit zpět na 0, protože jinak se Vám nevykoná.

K cyklu WHILE se vrátíme ještě až budeme probírat databáze.

Cyklus DO

Krom cyklu WHILE a FOR existuje ještě cyklus DO, ten je asi nejsložitější a sám sem jej nikdy nepoužil. Cyklus do testuje podmínku až na konci cyklu, na rozdíl od těch druhých, které otestují podmínku a pokud sedí cyklus teprve provedou, cyklus DO nejprve cyklus provede a pak až teprve jej testuje, zápis by tedy mohl být něco jako:

<?php

$i = 0;

do {

echo„číslo „. $i . „\n“;

$i++;

} while ($i < 3);

?>

 

BREAK a CONTINUE

Čas od času se nám stane, že nepotřebujeme, aby cyklus probíhal celý, pokud znovu vezmeme naší tabulku a řekneme si, že nechceme, aby se v ní vypsali čísla vyšší než 50, použijeme pro to break:

 

   <?php$b = 11;

echo „<table border=\“1\“>“;

for($a=1;$a<$b;$a++){

echo „<tr>“;

for($c=1;$c<$b;$c++){

if($c * $a>49) break;

echo „<td>“ . $c * $a . „</td>“;

}

echo „</tr>“;

}

echo „</table>“;

?>

Jak se z příkladu můžete všimnout, je tam dána podmínka, ve které, pokud by došlo, že dojde k vypsání čísla vyššího než 49, tak to break zastaví a číslo se nevypíše. Break ukončuje jen smyčku, ve které je, tedy pouze tu vnitřní, né vnější, protože ta pokračuje dále.

Příkaz continue neukončí vypisování smyčky, jen přeskočí zbytek těla a začne provádět další průchod smyčkou.


První díl o PHP - Historie a budoucnost

PHP se poprvé objevilo v roce 1994, kdy se pan Rasmus Lerdorf rozhodl, že si udělá jednoduchý systém, který mu bude započítávat přístup na stránky. První verze PHP byla napsána v PERLu, nicméně vzhledem ke značnému zatížení serveru bylo později přepsáno do jazyka C.

Druhý díl o PHP - Co PHP vlastně je?

V minulém díle jsme se podívali na historii PHP, nyní nás však čeká si vysvětlit, jak PHP pracuje, na co je vhodné a na co naopak není, či na co se dokonce použít nedá.

Třetí díl o PHP - Základy

V minulém díle jsme se podívali na to, co PHP vlastně je, jak se instaluje, co je potřeba pro běh a jak funguje, dnes nás tedy nebude čekat nic jiného, než s ním nějakým způsobem začít.

Čtvrtý díl o PHP - Komentáře

V minulých dílech jsme si tedy vysvětlili, jak se PHP zapisuje a jak vypsat řetězec. Nyní se podíváme na jednu důležitou část, tou jsou komentáře.

Pátý díl o PHP - Proměnné

Dnes se podíváme na proměnné a jejich datové typy. Každý programovací jazyk má nějaké proměnné, do proměnných se ukládají hodnoty a s hodnotami se dále pracuje. V každém programu je v každý okamžik hodnota proměnné jednoznačně dána.

Šestý díl o PHP - Přetypování proměnných

V minulém díle jsme se o přetypování trochu zmínili, nyní se však v praxi podíváme na to, co to je, k čemu to slouží a hlavně, jak se taková operace dá provést.

Sedmý díl o PHP - Pole

Dnes se podíváme na pole. Pole je speciální struktura, v podstatě v poli, v jednom názvu proměnné máme krom hodnoty i index nebo klíč. Co se pole v PHP týče, pracuje se s nimi velmi dobře, ale chce to něco málo vědět.

Osmý díl o PHP - Vícerozměrná pole

Vícerozměrné pole je velmi jednoduché, jistě jste si v minulém díle všimli že za $pole[1] hodnotou proměnné je index. U všech příkladu z minulého dílu lze říci, že se jednalo o pole, které bylo pouze v jedné dimenzi, tedy jednorozměrné pole, toto však ale nestačí a tak se podíváme na to, jak vytvořit vícerozměrné pole.

Devátý díl o PHP - Konstanty, výrazy, preinkrementace a postinkrementace

Když jsme řešili proměnné, jistě si vzpomenete, že každá proměnná má v kódu nějakou hodnotu, která se postupem v programu mění. Dnes se podíváme na Konstanty.

Desátý díl o PHP - Logické výrazy

Logické operátory jsou v PHP úplně stejné, jako v jiných jazycích, tedy pokud s nimi umíte, víte přesně k čemu jsou, můžete tuto kapitolu možná přeskočit, v opačném případě si ji radši přečtěte, jistě je budete potřebovat. Některé funkce vracejí hodnoty typu TRUE nebo FALSE.

Jedenáctý díl o PHP - Podmínky a operátory

Pokud vezmeme script, jen málo kdy bude od začátku do konce probíhat přesně tak, jak je napsaný, občas v programu budeme chtít nějakou změnu, aby pružně reagoval na změny, například pokud budeme vytvářet program na úpravu fotek a budeme chtít fotku vždy otočit na šířku, povolovat či blokovat přístup, měnit velikost stránky dle rozlišení či třeba používat jiný CSS soubor podle zvoleného internetového prohlížeče.

Třináctý díl o PHP - Funkce a procedury

Dnes se zaměříme na funkce a procedury. Funkce a procedury jsou v programovacím jazyce velmi důležité, ve většině jazyků je najdete a je velmi výhodné si je zapamatovat a používat.