Střední škola stavební Jihlava
Sada 1 - PHP 05. Větvení Digitální učební materiál projektu: SŠS Jihlava – šablony registrační číslo projektu:CZ.1.09/1.5.00/34.0284 Šablona: III/2 - inovace a zkvalitnění výuky prostřednictvím ICT
Jan Pospíchal © 2012
Projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky
Podmíněný operátor Má syntaxi logický výraz ? hodnota (výraz) pro true : hodnota (výraz) pro false Příklad – zdrojový text skriptu =0 ?(-$b-sqrt($D))/(2*$a):-$b/(2*$a)."-".sqrt(-$D)/(2*$a)."i"; $x2 = $D>=0 ?(-$b+sqrt($D))/(2*$a):-$b/(2*$a)."+".sqrt(-$D)/(2*$a)."i"; echo "x<sub>1 = $x1
"; echo "x<sub>2 = $x2
"; ?>
Spuštění skriptu Zdrojový text skriptu
Příkaz if (1) Má tvar if (podmínka) { posloupnost příkazů vykonaných při splnění podmínky } else { posloupnost příkazů vykonaných při nesplnění podmínky }
Část else je nepovinná.
Příkaz if (2) Příklad – zjištění existence proměnné, nastavení implicitních hodnot proměnné. Fragment kódu:
Funkce isset() vrací true , jestliže existují proměnné $_GET["a"], $_GET["b"], $_GET["c"] a hodnota žádné z nich není NULL. To nastane, když v adresním řádku předáme hodnoty proměnných a, b, c. Existují-li uvedené proměnné, jsou proměnným $a, $b a $c přiřazeny hodnoty z adresního řádku. Neexistují-li, jsou jim přiřazeny (implicitní) hodnoty v části else.
Příkaz if- řešení kvadratické rovnice Řešení kvadratické rovnice tvaru ax2+bx+c = 0, a ≠0. Koeficienty a, b, c předáváme skriptu podmineny_operator.php v adresním řádku. Pokud je nezadáme, použijí se implicitní hodnoty a=2, b=10, c=17. Spuštění skriptu (a=6, b=7, c=-5) Spuštění skriptu (a=2, b=10, c=37) Spuštění skriptu (a=0, b=1, c=1) Spuštění skriptu (implicitní hodnoty parametrů) Zdrojový text skriptu
Příkaz if - řešení lineární rovnice (varianta 1) Úloha. Jsou dány koeficienty a, b lineární rovnice ax + b = 0. Napište skript, který danou rovnici vyřeší. Spuštění skriptu pro a=7, b=5 Spuštění skriptu pro a=0, b=0 Spuštění skriptu pro a=0, b=-5 Spuštění skriptu bez parametrů v adresním řádku. Zdrojový text skriptu.
Příkaz if - řešení lineární rovnice (varianta 2) Úloha. Jsou dány koeficienty a, b lineární rovnice ax + b = 0. Napište skript, který danou rovnici vyřeší. Spuštění skriptu pro a=7, b=5 Spuštění skriptu pro a=0, b=0 Spuštění skriptu pro a=0, b=-5 Spuštění skriptu bez parametrů v adresním řádku. Zdrojový text skriptu.
Příkaz if - cvičení Úloha. Do nádoby tvaru válce o poloměru r a výšce h chceme nalít x litrů vody. Napište skript, který zjistí, zda se všechna voda do nádoby vejde. Jestliže ano, spočítejte, jak vysoko ode dna nádoby bude hladina vody. Rozměry r a h jsou zadány v centimetrech a množství vody x v litrech. Spuštění skriptu pro r=12, v=10, x=4.5 Spuštění skriptu pro r=12, v=10, x=4.6 Spuštění skriptu bez parametrů Zdrojový text skriptu
Příkaz switch (1) Příkaz switch umožňuje vícenásobné větvení. Systém nejdříve vyhodnotí testovaný výraz a poté prochází jednotlivé větve příkazu. Vykoná příkaz v té, ve které hodnota větve odpovídá hodnotě testovaného výrazu. Zároveň vykoná příkazy ve větvích následujících. Tomu se dá zabránit příkazem break.
Příkaz switch (2) Příkazu switch je věnována následující úloha. Je dán počet dní v měsíci a informace, na který den v týdnu připadá první den v měsíci (tato informace je ve tvaru pořadového čísla: pondělí=1, úterý=2, ..., neděle=7). Zjistěte, kolik dní v daném měsíci připadne na pondělí až pátek (kolik dní nepřipadne na víkend). Od počtu dní měsíce odečítáme počet dní připadajících na sobotu a neděli. Ten závisí na počtu dni v měsíci a na tom, na který den v týdnu připadne první den měsíce. Závislost zachycuje tabulka. Každé číselné hodnotě v tabulce je přiřazeno číslo (kód) ve tvaru 100*číslo dne + počet dní v měsíci. Spuštění skriptu s parametry v adresním řádku (počet dní 31, prvního ve čtvrtek) Spuštění skriptu s implicitními parametry (počet dní 30, prvního v pondělí) Zdrojový text skriptu
Příkaz switch (3) Následuje obměna předchozí úlohy. Je dán počet dní v měsíci a informace, na který den v týdnu připadá první den v měsíci (tato informace je ve tvaru zkratky: pondělí=po, úterý=ut, středa=st, čtvrtek=ct, pátek=pa, sobota=so, neděle=ne). Zjistěte, kolik dní v daném měsíci připadne na pondělí až pátek (kolik dní nepřipadne na víkend).
Spuštění skriptu s parametry v adresním řádku (počet dní 31, prvního v úterý) Spuštění skriptu s implicitními parametry (počet dní 30, prvního ve středu) Zdrojový text skriptu
Použitá literatura Mach , Jakub. PHP pro úplné začátečníky. 2. přepracované a rozšířené vydání. 1. vydání. Brno: CP Books a. s., 2005. 168 s. ISBN 80-7226-834-1 Naramore, E., Gerner, J., Le Scouarnec, Y., Stolz, J., Glass, M. Vytváříme webové aplikace v PHP5, MySQL a Apache. 1. vydání. Brno: Computer Press, a.s., 2006. 813 s. ISBN 80-251-1073-7 Lacko, Luboslav. PHP a MySQL Hotová řešení. 1. vydání . Brno: CP Books a. s., 2005. 300 s. ISBN 80-251-0397-8
Materiál je určen k bezplatnému používání pro potřeby výuky a vzdělávání na všech typech škol a školských zařízení. Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je : Jan Pospíchal Pokud není uvedeno jinak, byly při tvorbě použity volně přístupné internetové zdroje. Autor souhlasí se sdílením vytvořených materiálů a jejich umístěním na www.ssstavji.cz.