On Wed, 27 Nov 2002, Andi Gutmans wrote: > At 04:41 PM 11/26/2002 -0500, Daniel Cowgill wrote: > >So why do the conversion in arithmetic? This seems bizarrely inconsistent to > >me: > > > ><? > >print (int) "0xA" + 0; // prints 0 > >print (int) ("0xA" + 0); // prints 10 > >?> > > > >I think it's reasonable to expect those expressions to return the same value. > > > > Hmm, this is definitely interesting. The result of the second expression > should be 0 too. I haven't had time to check why this happens as all > conversions in zend_operators.c are with base 10. I vaguely remember > someone changing something in this area a while ago. > BTW in PHP 4.0.4 this prints out "1" (the second expression) which doesn't > make much sense. > The reason for this is that is_numeric_string() which is used in > add_function() does convert hexadecimals whereas all other code in > zend_operators.c doesn't. > This is a pretty bad inconsistency which should be addressed.
And I like to see it addresses so that above examples both print 10. Derick -- ------------------------------------------------------------------------- Derick Rethans http://derickrethans.nl/ JDI Media Solutions http://www.jdimedia.nl/ PHP Magazine - PHP Magazine for Professionals http://php-mag.net/ ------------------------------------------------------------------------- -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php