Autor Zpráva
Pilda
Profil
Pokud mám v podmínce, že musí být splněny obě podmínky - vyhodnocuje se ta druhá podmínka, pokud už první je nesplněná?
Pěvně doufám, že ne, ale radši se ptám...
Pilda
Profil
Příklad:


if ($a!=1 && $b==2) {
//příkazy
}
nightfish
Profil
v tebou uvedené ukázce, pokud nedojde ke splnění první podmínky, druhá podmínka se již nevyhodnocuje (což jde změnit záměnou && za &)
D1ce
Profil
Pilda
Php stejně jako c++ a jiné jazyky oplývá vlastností zkrácené vyhodnocování výrazů;.

if(tohle_se_provede_vzdy() &&
tohle_pouze pokud_tohle_se_provede_vzdy_vartilo_nenulovou_,neprazdnou_a_ne_false_h odnoty() &&
tohle_se_provede_pouze_pokud_jsou_obe_prvni_podminky_splneny()) {
//vsechno se prvedlo
}

Avšak pozor na operátor or a ||, při vyhodnocování se postupuje asi takhle: pokud je splněna alespoň jedna část výrazu, znamená to, že je splněn a není potřeba dál testovat. Pří vyhodnocování se postupuje zleva do prava. Doporučuji pročíst manuál, odkud se také dovíte jakou mají operátory asociativu(ve větsšině případů levou) a prioritu.

nightfish
Ačkoliv && a & jsou mírně odlišné ne? Pokud se memýlím, tak && je logické and a & je bitový posun a pokud se jím označí proměnná, je považována za referenci.
D1ce
Profil
nightfish
> Ačkoliv && a & jsou mírně odlišné ne?
Akorát v tom vyhodnocování, sorry, před chvílí jsem to testoval.
Toto téma je uzamčeno. Odpověď nelze zaslat.