Autor | Zpráva | ||
---|---|---|---|
pavuk Profil |
#1 · Zasláno: 11. 12. 2011, 16:37:00
Tento kód je funkční
if($_GET['str']!='x') echo '...' if(($_GET['str']!='x')||($_GET['str']!='y')) echo '...' |
||
ShiraNai7 Profil |
#2 · Zasláno: 11. 12. 2011, 16:40:29
"Nebo"? Nemyslíš spíš "a zároveň"?
<?php if('x' !== $var && 'y' !== $var) { ... } |
||
Marek88 Profil |
#3 · Zasláno: 11. 12. 2011, 16:44:02 · Upravil/a: Marek88
|| se vyhodnocuje tak, že stačí aby jeden výraz byl pravdivý a pak je to celé pravdivé. V tvém případě například bude proměnná $_GET["str"]=y. Potom v té podmínce bude x!=y ... to je pravda, a proto je to celé pravdivé. Správně bys tam měl mít &&.
|
||
pavuk Profil |
#4 · Zasláno: 11. 12. 2011, 16:50:13 · Upravil/a: pavuk
ShiraNai7:
Ne, mám skutečně na mysli 'x' nebo 'y', proto taky ty svislítka. Příliš jsem se na to "nebo" zaměřil aniž bych použil hlavu. Marek88: teď už je to funkční, děkuju. To že se to stane pravdivý celý a tím pádem to takhle dopadne jsem nedomyslel. Ovšem když to píšeš už mi to připadá srozumitelný... |
||
Aleš Janda Profil |
#5 · Zasláno: 11. 12. 2011, 19:03:11
pavuk:
Někdy je lepší napsat si opačnou podmínku a potom ji celou otočit: inverzní operátory porovnání a prohodit && a ||. A pokud by byl výsledek stejně matoucí, dělám toto: if ($neco); else { …kód, co se má provést… } |
||
Alphard Profil |
#6 · Zasláno: 11. 12. 2011, 20:00:43 · Upravil/a: Alphard
Aleš Janda:
> if ($neco); > else { …kód, co se má provést… } Tak zrovna to se mi moc hezké nezdá. pavuk: Přemýšlel jste o možnostech vyhodnocení vaši podmínky? V $_GET['str'] očekáváte skalár, takže minimálně jedna nerovnost musí být vždy splněna. Takže tam ani nemusí být podmínka když se proměnná 'str' nerovná 'x' nebo se proměnná 'str' nerovná 'y' tak vypiš vypište vždy. if (!in_array($_GET['str'], array('x', 'y'))) |
||
Časová prodleva: 12 let
|
0