on-game | vs-web | vs-online | AAA WEBY
Hlavni panel

Programing - PHP (díl 3)


Programing - PHP (díl 3)

   Vítám vás po malé pauze u dalšího dílu programování v PHP dnes se podíváme na tvoření podmínek a doplním ještě předchozí díl týkající se polí. Takže s chutí do toho.

   Jednou ze základní programovacích metod je možnost dát programu na výběr kudy pokračovat dál. Pro rozhodování se v PHP používá konstrukce IF. IF je logická podmínka, když je podmínka splněna tak se vykoná část skriptu v podmínce. V případě není-li podmínka splněna jsou dvě vlastně tři možnosti. A) Program pokračuje za konstrukcí IF dál jako by se nic nestalo. B) Program spustí část skriptu v konstrukci IF která je určena pro tento případ ELSE. C) Otestujeme další podmínku pomoci ELSEIF.

Konstrukce podmínek

IF(podmínka){
Vykonávaná část kódu je-li podmínka splněna
}

IF(podmínka){
Vykonávaná část kódu je-li podmínka splněna
} ELSE {
Vykonávaná část kódu není-li podmínka splněna
}

IF(podmínka){
Vykonávaná část kódu je-li podmínka splněna
} ELSE {
Vykonávaná část kódu není-li podmínka splněna
}

   Nyní víte jak vypadá konstrukce podmínky IF jen stačí doplnit vhodnou podmínku a už jste váš program naučili se rozhodovat. Jako podmínku můžeme použít porovnávací operátory nebo nějakou funkci. Seznam porovnávacích operátorů:

Podmínka      Vysvětlení
$a == $b Pravda je-li proměnna $a stejná jako proměnná $b
$a != $v Pravda neni-li proměnná $a stejná jako proměnná $b
$a > $b Pravda je-li proměnná $a větší než proměnná $b
$a < $b Pravda je-li proměnná $a nenší než proměnná $b
$a >= $b Pravda je-li proměnná $a větší než proměnná $b nebo rovna
$a <= $b Pravda je-li proměnná $a menší než proměnná $b nebo rovna

Pro názornost jeden přiklad

if ($a > $b) {
echo "a je větší než b";
} elseif ($a == $b) {
echo "a se rovná b";
} else {
echo "a je menší než b";
}

   Pozor na psaní rovnosti v podmínkách musíte psát dvě = za sebou jinak si PHP myslí že jste o plnění proměnné a podmínka IF nebude fungovat. Jako funkci kterou můžeme úspěšně použit a taky se používá můžeme jmenovat isset($promenna). Tato funkce kontroluje je-li proměnná nadefinováno jinými slovy jestli vůbec existuje.

   Podmínky můžeme rozšířit na několik podmínek spojených v jedné konstrukci. Pomocí logických operátorů AND, OR, XOR. AND (logický součin) použijeme chceme-li aby všechny podmínky byli pravdivé (v logice agresivita 0). OR (logický rozdí) použijeme chceme-li aby alespoň jedna či více podmínek byla pravdivá (v logice agresivita 1) a XOR chceme-li aby jen jedna z podmínek byla pravdivá. Tyto logické členy můžeme úspěšně kombinovat pomocí závorek. Pro snadnější pochopení maličký přiklad:

IF( 1==1 AND 2==2 AND 3==3 AND 999==999) { /* PHP vyhodnotí tuto konstrukci jako TRUE (pravdu) protože jsou splněny všechny podmínky */

IF ( 1000 == 1000 AND 3 < 0 ) { /* PHP tuto konstrukci vyhodnotí jako FALSE (nepravdu) protože podmínka 3 < 0 není pravda. */

IF ( ($a == $b AND $c == $b) OR ($b == $c AND $a == $d) ) { /* přiklad použití složených podmínek pomocí závorek */

   Z podmínek jsem vyčerpal vše co jsem vám chtěl zbělit takže se vrátím ještě k polím. Krátce po napsání článku sem se dostal k programovaní kde jsem použil takzvané dvourozměrné pole. Tzn. Že má dva identifikátory. Můžete si to představit jako matici nebo spíše tabulku kde jeden identifikátor vyhledá sloupec a druhý řádku a tak se dostanete na požadovanou buňku. Stejný systém se používá třeba u telefonní klávesnice (akorát ve strojovém kódu, PHP ovládat klávesnici neumí :D, třeba v ASM). Ještě jednoduší je vysvětlení jako na šachovnici, pomocí dvou dvourozměrného pole by se dali naprogramovat i šachy. Kde je opět jeden identifikátor pro sloupce a druhý pro řádky.



Známka 3,00 | Přečteno 2004 x | Smaž | 20/01/2007 | Autor: ETNyx |
Komentařů: 16 | Vstup do diskuse |
Sdílet

Abyste mohl hodnotit tento článek, tak musíte být přihlášen. Nemáte ještě zřízený účet ? Registrujte se zde.
Všechna práva vyhrazena, © 2006 Team on-game

Optimalizováno pro 1024x768 a prohlížeče IE, Mozilla Firefox a Operu

ip:38.107.179.220, čas:0.00186491012573, sql:10