Autor Zpráva
Janvesely12
Profil
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
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
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
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
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
}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: