![]() |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
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ů.
|
||||
KOMENTARZE | ||||
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
|
1. |
Pacman linux Download: 5093x |
2. |
FreeBSD Download: 9307x |
3. |
PCLinuxOS-2010 Download: 8795x |
4. |
alcolix Download: 11188x |
5. |
Onebase Linux Download: 9908x |
6. |
Novell Linux Desktop Download: 0x |
7. |
KateOS Download: 6458x |
1. |
xinetd Download: 2619x |
2. |
RDGS Download: 937x |
3. |
spkg Download: 5243x |
4. |
LinPacker Download: 10385x |
5. |
VFU File Manager Download: 3394x |
6. |
LeftHand Mała Księgowość Download: 7482x |
7. |
MISU pyFotoResize Download: 3086x |
8. |
Lefthand CRM Download: 3755x |
9. |
MetadataExtractor Download: 0x |
10. |
RCP100 Download: 3371x |
11. |
Predaj softveru Download: 0x |
12. |
MSH Free Autoresponder Download: 0x |