V předchozím díle jsme se dozvěděli, jak ukládat a vypisovat proměnné. To by byla celkem nudná práce, pokud by toho PHP nemohlo nabídnout více.
Prvním úkolem, který budeme chtít po počítači je, aby rozhodoval o pravdivosti našich výroků. Slouží k tomu funkce if.
<?php
$pravda = true; // true je pravdivostni hodnota "Pravda"
if ($pravda) {
echo 'Pravda'; // Pravda
}
Podle kódu vidíte jednoduchou konstrukci funkce if. Za klíčovým slovem if je v závorce výraz, u kterého se určuje pravdivostní hodnota. Tento výraz může být i složený z více vnitřních výrazů. Ke spojování těchto výrazů slouží ..
Význam | Zápis | Zkrácený zápis | Příklad |
Průnik (musí platit A i B zároveň) | AND | && | if ($a && $b) { // Platí $a i $b } |
Sjednocení (musí platit alespoň jedno z A a B) | OR | || | if ($a || $b) { // Platí $a nebo $b nebo obě dvě } |
Rozdíl (musí platit A nebo B, ale ne obě najednou) | XOR | xor | if ($a xor $b) { // Platí $a nebo $b, ale ne obě } |
Doplněk – negace (musí platit, že neplatí A) | NOT | ! | if (!$a) { // Platí, že neplatí $a } |
Je rovno | == | if ($a == $b) { // Hodnota $a je stejná, jako hodnota $b } | |
Není rovno | != | if ($a != $b) { // Hodnota $a není stejná, jako hodnota $b } |
Nyní už víme, jak napsat kód ve smyslu Když je to pravda, tak udělej tohle. Nyní si ukážeme, jak tuto větu doplnit … a když to není pravda, tak udělej tohle.
<?php
$a = true; // pravda
$b = false; // nepravda
if ($a && $b) { // není pravda, protože $b není pravda
// blok kódu, pokud by to byla pravda
} else { // když předchozí podmínka není pravdivá
echo 'Jsi lhář!';
}
Podmínky můžeme i skládat za sebe.
<?php
$a = true; // pravda
$b = false; // nepravda
if ($a) {
// blok kódu, pokud $a je pravda
} else if ($b) {
// blok kódu, pokud $b je pravda
} else {
// blok kódu, pokud $a ani $b není pravda
}
Poslední příklad může mít i speciální variantu, pokud se ptáme pravdivostní hodnotu stále stejného výrazu. Pak existuje jednodušší, speciální funkce switch.
<?php
$zvire = 'pes';
// zápis ve funkci if
if ($zvire == 'kočka') {
echo 'Zvíře je kočka';
} else if ($zvire == 'pes') {
echo 'Zvíře je pes';
} else if ($zvire == 'kůň') {
echo 'Zvíře je kůň';
} else {
echo 'Není to žádné známé zvíře';
}
// zápis ve funkci switch
switch ($zvire) {
case 'kočka': // podmínka, jestli je $zvire == kočka
echo 'Zvíře je kočka';
break; // ukončení podmínky
case 'pes':
echo 'Zvíře je pes';
break;
case 'kůň':
echo 'Zvíře je kůň';
break;
default: // pokud neplatí ani jedna z uvedených možností
echo 'Není to žádné známé zvíře';
}