mbr: 001 = 1 und password_hash

Beitrag lesen

Hallo Der Martin

Bei Zeichenketten würde man erwarten, dass der Ausdruck ("01" == "1") FALSE ergibt und nicht TRUE.

das ist auch in PHP so, solange beide Operanden Strings sind. Die "magische" und oft lästige oder gar gefährliche automatische Typumwandlung mit all ihren bösen Nebenwirkungen schlägt erst zu, wenn die Operanden verschiedene Typen haben.

ich wollte dir erst zustimmen und mich bedanken, dass du das richtig gestellt hast, aber dann habe ich nochmal folgendes ausgeführt:

  
var_dump("01"=="1"); 	//true  
var_dump("01"==1); 	//true  
var_dump(01=="1");	//true  
var_dump("015"=="13");	//false  
var_dump(015=="13");	//true  
var_dump("015"==13);	//false  

WTF - habe ich etwas übersehen oder hat Whouzo tatsächlich recht? Auch die letzte Ausgabe verstehe ih nicht wirklich. Mir ist noch klar, dass eine führende Null bedeutet, dass es sich um eine Oktalzahl handelt. Außerdem weiss ich, dass 15(Oct) = 13(Dec) ist...

Achso: PHP 5.3.8 auf Win7 (XAMPP)

Viele Grüße

Michael