There is no bug here. Please read:
http://docs.sun.com/source/806-3568/ncg_goldberg.html
-Rasmus
Todd Ruth wrote:
I'm thinking there must be a bug in the heart of php
causing this. I'll debug it, but I haven't looked at
php source code in a few years and would like a tip as
to which files are involved in evaluating "==". Here
is a fragment from my code and the output:
...
print "<pre>\n";
var_dump($max);
var_dump($nms);
var_dump($nms == $max);
$max = (float)$max;
$nms = (string)$nms;
var_dump($max);
var_dump($nms);
var_dump($nms == $max);
$max = (string)$max;
$nms = (float)$nms;
var_dump($max);
var_dump($nms);
var_dump($nms == $max);
print "</pre>\n";
...
string(3) "1.8"
float(1.8)
bool(false)
float(1.8)
string(3) "1.8"
bool(true)
string(3) "1.8"
float(1.8)
bool(true)
I found this using php 5.2.3. I just upgraded to php 5.2.5
and am receiving the exact same result. Obviously, I can't
reproduce it with a simple var_dump("1.8"==1.8). :(
I guess something is getting corrupted, and I will add debug
output until I find out what (or Murphy removes the problem
by adding debug output; then I'm not sure what I'll do).
Thanks for any tips on which files I should look at it.
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php