Dnes ještě opakujeme, opakujeme, opakujeme...
Logické operátory
Logické operátory se využívají především v podmínkách, cyklech apod., takže je v tomto díle s výhodou využijeme, proto Vás s nimi seznámím hned na začátku článku. Přidržím se těch nejdůležitějších a zároveň nepraktičtější.
< // menší než
Myslím, že tyto operátory jsou více méně jasné. Jejich využití si ukážeme později. Úmyslně jsem k těmto operátorům přidal i operátor přiřazení (=), protože bývá v souvislosti s podmínkami často kamenem úrazu nejen začátečníků.
> // větší než
== // je rovno
>= // větší nebo rovno
= // přiřazení!!!
Jednoduchá podmínka - if
Příkaz if je jedním z nejdůležitějších prvků v mnoha jazycích, včetně PHP. Umožňuje podmíněné provádění kusu kódu. Struktura if v PHP je podobná struktuře v C: if(podmínka) příkaz;
// příklad:
$vek = 16;
if ($vek < 18) // pokud je $vek menší než osmnáct, vypíše uvedený text
echo "Copak, už taky programuješ?";
Podmínka se vyhodnocuje na datový typ boolean, to znamená jako true (pravda; pokud je podmínka pravdivá, příkaz se provede) nebo false (nepravda; pokud bude podmínka vyhodnocena jako nepravda, příkaz se neprovede, resp. se provede část else, pokud je uvedena - viz. dále). V příkladu byl uveden případ s pouze jedním příkazem. Pokud chcete provést více než jeden příkaz, máte několik možností: // a) umístit příkazy do bloku, do složených závorek { a }
$pocetzvirat = 3;
if ($pocetzvirat >= 5) // pokud je $pocetzvirat větší nebo rovno pěti
{
echo "Vy máte $pocetzvirat?";
echo "Tak to máte učiněný zvěřinec!";
}
// b) za podmínku můžete napsat dvojtečku (:) a tam, kde končí celý if napíšete endif
if ($pocetzvirat 1000000)
{
echo "Slušná částka na kontě. Teď jde o to, zda je legálně získaná. ;-)";
}
else
{
echo "Škoda, tak to nejste zrovna milionáři. A chtěli byste? ;-)";
}
Ještě bych se chtěl zmínit o další části tohoto příkazu, který se také často používá - je to část elseif. Tato část se umísťuje mezi if a else. Tato část se provede také, pokud není splněna žádná z předchozích podmínek. Navíc jich může být libovolný počet, takže můžete opravdu prověřit opravdu vše. $banka = 560000;
V příkladu jsem schválně použil dvojtečku a endif, protože to bývá častá příčina mnohých chyb a problémů, protože mnozí píší endif již za if a tudíž PHP už nečeká žádnou další část tohoto příkazu. U složených závorek je to jednoduché - každé if, elseif i else má svůj vlastní blok příkazů (viz. výše).
if ($banka > 1000000):
echo "Slušná částka na kontě. Teď jde o to, zda je legálně získaná. ;-)";
elseif ($banka > 500000):
echo "Také to není zrovna malá částka...";
echo "Škoda jen, že není u mě.";
elseif ($banka > 100000):
echo "Ještě to jde, ale žádná sláva."
else:
echo "Škoda, tak to asi na účtu moc nemáte, co?";
endif;
Rozbočovač switch
To, co bych ještě dnes rád probral je rozbočovač switch. Abych to zkrátil: dá se tím z jisté části nahradit elseif (co se týče rozhodování podle hodnot v proměnné). Pro jistotu uvedu hned příklad: $opravneni = "normal";
Začátek je doufám srozumitelný. Novou částí je case. V podstatě určuje, čemu se musí rovnat obsah proměnné, aby se provedl daný blok příkazů. V tomto případě musí být vždy za case dvojtečka - nikoli složené závorky. U samotného switch dvojtečku použít můžete, v tom případě použijte jako ukončovací příkaz (místo endif;) endswitch;.
switch ($opravneni) // syntaxe vypadá ze začátku normálně
{
case "admin": // toto je nové
echo "Vítám tě admine!";
break; // break - zarážka, neboli překážka
case "redaktor":
echo "Zdravím tě redaktore, doufám, že opět napíšeš něco pěkného!";
break;
case "normal":
default: echo "Vítám tu naše věrné čtenáře!";
}
Break, neboli také brzda (nebo jak si to přeložíte - to je již na vás - pro mě to je tak jako tak break :-), způsobí, že se po vykonání předchozích příkazů neprovede již nic jiného ze switch. Pokud je vynechán, PHP postupně case projíždí, a dokud nenarazí na break nebo konec switch, provádí všechny příkazy. U posledního case jsem break schválně vynechal a nechal tak PHP 'propadnout' až do části default (to znamená, že takto se provede to samé, když bude hodnota normal, ale i když hodnota proměnné bude různá od všech ostatních - to zajišťuje právě část default).
Příště
Jelikož jsem dnes nestihl zopakovat cykly, budou to právě ty. Již nyní ale vím, co bude potom, ale zatím Vám nic nepovím...
Autor: mzima