Hi, I think objects comparison in PHP5 has problems. Here is small sample code,
<?php class Foo { var $v = 1; } class Boo { var $v = 1; } $a = new Foo; $b = new Foo; $c = new Boo; $d = new Foo; $d->v = 2; $e = $a; // value comparison echo $a == $b ? "same," : "not same,"; echo $a == $c ? "same," : "not same,"; echo $a == $d ? "same," : "not same,"; echo $a == $e ? "same" : "not same"; echo "\n"; // value and type comparison echo $a === $b ? "same," : "not same,"; echo $a === $c ? "same," : "not same,"; echo $a === $d ? "same," : "not same,"; echo $a === $e ? "same" : "not same"; ?> The output from PHP4 and PHP5(ze1_compat on/off) is, PHP 4.3.6 : same,not same,not same,same same,not same,not same,same PHP 5.0.0RC2 zend.ze1_compatibility_mode=off : same,not same,not same,same (Notice: Object of class [Foo|Boo] could not be converted to integer) not same,not same,not same,same PHP 5.0.0RC2 zend.ze1_compatibility_mode=on : same,same,not same,same not same,not same,not same,not same The problem and question are, 1. the different class is recognised as same in PHP5 (ze1_compat=on). 2. the same object is recognised as different in PHP5 (ze1_compat=on). 3. Why integer casting of object was implicitly applied in PHP5 (ze1_compat=off) ? -- Rui Hirokawa <[EMAIL PROTECTED]> -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php