Autor Zpráva
Avis
Profil
Zdravim.

Lamu si nad timhle hlavu a Google mi neodpovedel. Dokazal by mi nekdo osvetlit tohle?

$x = null;

if ( $x >= 0 ) { echo "prvni podminka prosla<br />"; }
if ( $x > -1 ) { echo "druha podminka prosla<br />"; }

Vystup je:
prvni podminka prosla

Aneb prvni podminka projde, druha ne... Cim presne je to zpusobene?

Predem diky za odpoved ;-)
Majkl578
Profil
Je to způsobené přetypováním, které se provede ještě než se provede samotné porovnání. Pravidla jak to funguje jsou v dokumentaci.
Jde o druhý případ, tedy operandy se prvně převedou na boolean a následně porovnají, vznikne tedy toto:
if (FALSE > TRUE) { ...
Čehož výsledek je samozřejmě FALSE.

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: