Donnerstag, 11. Dezember 2008

true or false

heute wäre fast das weltbild von einigen von uns (inklusive mir) zerbrochen ;)
beim bug fixing hat sich etwas interessantes herausgestellt:

(0=='string') ergibt true

viele (auch ich) dachten aber, dass das ergebnis dieses vergleichs false ist.

meine logik:
-> 0 wird als false behandelt
-> 'string' ist kein leerstring und daher true
-> daraus ergibt sich: (false==true) ist false

diese logik stimmt auch:
var_dump((bool)0);         // bool(false)
var_dump((bool)'string');  // bool(true)

sonderfall: beim vergleich von einem string mit einem integer wird der string zuerst in einen integer umgewandelt und dann erst verglichen [string in a numeric context]:
var_dump((bool)((int)'string'));  // bool(false)

somit ergibt sich:
var_dump((bool)0);                // bool(false)
var_dump((bool)((int)'string'));  // bool(false)
und (false==false) ist true.

anmerkung: wenn ein string in einen integer konvertiert wird, ist dieser immer 0 außer er beginnt mit einer zahl.
var_dump((int)'string');   // int(0)
var_dump((int)'9string');  // int(9)

FYI
-> typenvergleich: [php.net] bzw [blueshoes.org]
-> casting: boolean | string | integer

mfg mailo

user status

Du bist nicht angemeldet.

archiv

Dezember 2008
Mo
Di
Mi
Do
Fr
Sa
So
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
10
12
13
14
15
16
17
18
19
21
22
23
24
25
26
27
29
30
31
 
 
 
 
 

hinweis

die in diesem blog enthaltenen beiträge dienen ausschließlich dem informationszweck!

der autor übernimmt KEINE HAFTUNG für jeglichen missbrauch dieser informationen!

latest comments

Kumpulan Cerita Seks...
Kumpulan Cerita Seks Dewasa Terbaru 2017 Cerita Sex...
Cerita Sex (Gast) - 27. Feb, 02:58
St Patricks' Day Symbols...
The parade has more than 150,000 participants and attracts...
st patricks day t shirt (Gast) - 23. Feb, 14:08
John
Exclusively at Target 42 Bluray Combo Pack with exclusive...
Smithk112 (Gast) - 25. Mai, 20:10