S tř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 <?php $a=4; $b=20; $c=34; $D=$b*$b-4*$a*$c; $x1 = $D>=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</sub> = $x1<br>"; echo "x<sub>2</sub> = $x2<br>";?> Spuštění skriptu Zdrojový text skriptu
Příkaz if(1) Má tvar if(podmínka) { } else { } posloupnost příkazů vykonaných při splnění podmínky 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: <?php if (isset($_get["a"],$_get["b"],$_get["c"]) ) { $a=$_get["a"]; $b=$_get["b"]; $c=$_get["c"]; } else { $a=4; $b=20; $c=34; }?> 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 ax 2 +bx+c = 0, a 0. Koeficienty a, b, c předáváme skriptu podmineny_operator.phpv 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
Úloha. Příkaz if-řešení lineární rovnice (varianta 1) 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 ra výšce hchceme 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 ra hjsou 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 switchumožň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 switchje 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., LeScouarnec, Y., Stolz, J., Glass, M. Vytváříme webové aplikace v PHP5, MySQLa Apache. 1. vydání. Brno: ComputerPress, a.s., 2006. 813 s. ISBN 80-251-1073-7 Lacko, Luboslav. PHP a MySQLHotová řešení. 1. vydání. Brno: CP Booksa. 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.