|
|
|||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||
| Operátor |
Význam |
Pravda když |
| and |
Logický součin |
Jsou obě hodnoty pravdivé |
| or |
Logický součet |
Je alespoň jedna hodnota pravdivá |
| xor |
Exkluzivní OR |
Je právě jedna hodnota pravdivá |
| ! |
Negace |
True když bylo False a naopak |
| && |
Logický součin |
Jsou obě hodnoty pravdivé |
| || |
Logický součet |
Je alespoň jedna hodnota pravdivá |
Několik příkladů to vysvětlí:
<?
// jestliže například
$mam_papir=TRUE; $mam_inkoust=TRUE;
// ... je jasné, že
$mohu_tisknout=$mam_papir && $mam_inkoust;
// což je totéž jako
$mohu_tisknout=$mam_papir and $mam_inkoust;
?>
Tady se jednalo o logický součin.
Pokud chci tisknout, musím mít jak papír,
tak i inkoust.
<?
// jestliže například
$mam_penize_doma=FALSE; $mam_penize_v_bance=TRUE;
// ... je jasné, že
$mam_penize=$mam_penize_doma || $mam_penize_v_bance;
// což je totéž jako
$mam_penize=$mam_penize_doma or $mam_penize_v_bance;
?>
Tady se jednalo o logický součet. Peníze mám jak v případě, že jsou doma, tak i v případě, že jsou v bance ;-))). Peníze mám dokonce i případě, že jsou jak doma tak i v bance, proto se jedná o neexkluzivní OR.
<?
$mam_malo_penez = true;
$jsem_bohaty =
!$mam_malo_penez;
echo (integer)$jsem_bohaty;
?>
Negace je myslím jasná. Jestliže mám
málo peněz, pak nejsem bohatý.
Ve skriptu si můžete všimnout jedné věci: nevypsal jsem hodnotu
proměnné $jsem_bohaty, ale její reprezentaci jakožto celého čísla. Echo
$jsem_bohaty by vrátilo prázdný řetězec, současný kód však vrací nulu.
Proč je to tak bylo popsáno v díle o přetypování proměnných.
Logické exkluzivní OR (XOR) se používá v programování především na
šifrovací algoritmy a pro psaní webů se bez něj asi obejdate. Ať
přemýšlím jak přemýšlím, nepodařil se mi najít žádký příklad z praxe,
který by jej dostatečně ilustroval a ve svých skriptech jsem ho nikdy
nepoužil.
Dva operátory pro logický součet a dva operátory pro logický součit se od sebe liší prioritou. Bude o tom řeč v příštím díle našeho seriálu.
K logickým operátorům ještě jedna důležitá poznámka. Vždycky nemáme
při programování to štěstí, že logické výrazy jsou rovny buď FALSE nebo
TRUE. Při práci s databázemi se velice často stává, že musíme sáhnout k
"třístavové logice". Více o tom bude pojednáno v některém díle o MySQL,
ale měli bychom poznamenat, že z hlediska databází je někdy logická
hodnota buď TRUE, nebo FALSE nebo NEZNÁMÁ (NULL). Pozor na to.
Setkáte se s tím.
Příště se v našem seriálu podíváme na operátory, na které se zatím nedostalo, a na prioritu operátorů.
|
Příspívat do diskuze mohou pouze registrovaní uživatelé. | |
|
Administrace serverů |
|
Od 350 Kč/hod |
|
Server housing |
|
Od 1000 Kč/1U |
3.9.2010 8:31 /MaReK Olšavský
Na stránkách OpenSource.com vyšel zajímavý příběh o návrhu Nizozemské euro mince, který byl realizován strojově za pomocí svobodného software. Ano, svobodný software umí tvořit peníze.
Komentářů: 1
3.9.2010 8:28 /MaReK Olšavský
Dostupnost Ksplice pro Fedoru určitě potěšila nejednoho uživatele, který chce provozovat linuxový server bez nutnosti rebootu. Má Ksplice budoucnost, nebo se neuchytí?
Přidat komentář
2.9.2010 5:05 /MaReK Olšavský
Zdá se, že Ukrajina bude následovat příklad Ruska a připraví vlastní „oficiální“ distribuci GNU/Linuxu. Blog OPEN… na novou distribuci upozornil ty, jež nerozumí ukrajinštině. Je potřeba další distribuce?
Přidat komentář
2.9.2010 4:32 /MaReK Olšavský
Na stránkách Worldlabel blogů vyšel příspěvek, jehož autor probírá použití open source a linuxu při zpracování fotografií. Autor napsal o známém software, nicméně ukazuje, že OSS pokrývá celý proces zpracování fotografií.
Přidat komentář
1.9.2010 7:48 /MaReK Olšavský
Zajímavý blogspot o vyřešení jednoho problému s dokumentem a úspoře díky OpenOffice.org.
Komentářů: 1
3.9.2010 21:54 /
Dominik Geršák
Re: formular v php
3.9.2010 14:45 /
Aleš Hakl
Re: Soft na virtual sieť
3.9.2010 13:15 /
Ondřej Tůma
Hooodne stary
2.9.2010 22:26 /
Jan Tichý
php parser - problem
2.9.2010 21:28 /
Raduz
formular v php