|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Menu
Distributions (131)
Software (10844)
|
PHP (10) - Logické výrazy a operátoryLogické výrazy a operátory v PHP.
Logické operátory se v PHP víceméně neliší od stejných operátorů v
jiných programovacích jazycích, ale to neznamená, že je v našem
tutoriálu vynecháme. Pojďme se tedy podívat, jak se používají. Pokud
logické výrazy chronicky znáte z jiných programovacích jazyků, možná
můžete tento díl přeskočit. Již jsme si uvedli, že PHP má datový typ boolean reprezentovaný hodnotami TRUE a FALSE. Má také operátory, které Vám umožní s nimi pracovat. Především bychom si měli ale říci, že pro logické operace se nedoporučuje používat klasické operátory "+", "-", "*" a "/". Když to uděláme, neskončí to chybou, protože PHP provede přetypování. Nicméně, chování programu bude většinou zvláštní. Dokázali byste si například tipnout, co vrátí následující kód? <? Asi se Vám to první pohled bude zdát divné, ale výsledkem bude pouhá
jednička. PHP totiž první řetězec převedl na LOGICKOU hodnotu a pak s
ní tak pracoval. Z toho je myslím patřičně vidět, že potřebujeme
logické operátory. V PHP existují následující:
Několik příkladů to vysvětlí: <? Tady se jednalo o logický součin.
Pokud chci tisknout, musím mít jak papír,
tak i inkoust. <? 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. <? 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. Poznámky k logickým výrazům
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ů.
|
Search Software
Search Google
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
©Pavel Kysilka - 2003-2024 | maillinuxsoft.cz | Design: www.megadesign.cz |