Autor | Zpráva | ||
---|---|---|---|
Janvesely12 Profil |
#1 · Zasláno: 26. 3. 2012, 16:12:21
Zdravím, mám dlouhodobý problém s podmínkou a použití or.
Kód: if (($uzivatel != $id) or ($uzivatel != '3')) { echo 'Zakázán'; }{ echo 'Povolen'; } Ale i když se mi uživatel rovná 3 pořád to zobrazuje zakázán. Proč? Děkuji |
||
Someone Profil |
#2 · Zasláno: 26. 3. 2012, 16:16:06
Přepíšu slovně to co jsi napsal a řekni mi, zda je to co chceš.
Pokud se hodnota proměnné uživatel nerovná hodnotě proměnné id a nebo pokud se hodnota proměnné uživatel nerovná hodnotě 3 vypiš zakázán, jinak povolen. to znamená $id = 1; $uzivatel = 1; vypíše zakázán, protože se uživatel nerovná 3. |
||
Medvídek Profil |
Janvesely12:
Však to je v pořádku, protože pokud se rovná 3, tak už se nerovná $id. |
||
Janvesely12 Profil |
#4 · Zasláno: 26. 3. 2012, 16:20:08
Děkuji s AND to funguje, ale nemůžu pochopit proč to je takhle. Myslel jsem že AND bude znamenat, že podmínky se musí rovnat obě dvě, ne pouze jedna. Ale funguje to.
|
||
Radek9 Profil |
#5 · Zasláno: 26. 3. 2012, 17:25:52
Janvesely12:
Při AND musí být obě dvě části true. Což se se splní, pokud se to nerovná $id a zároveň se to nerovná 3. |
||
Joker Profil |
#6 · Zasláno: 26. 3. 2012, 19:35:10
Janvesely12:
„nemůžu pochopit proč to je takhle“ Protože to je zkomplikované těmi negacemi. Podmínka: Jestliže $uzivatel se nerovná $id a zároveň $uzivatel se nerovná 3 je přeci splněna v případě, kdy $uzivatel se nerovná ani $id, ani 3. Snáze pochopitelné by asi bylo to obrátit: if(($uzivatel == $id) or ($uzivatel == 3)){ // povolen } else { // zakázán } |
||
Časová prodleva: 14 let
|
0