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