Brian Moon writes:
> This is correct. The type casting converts the string into its integer
> value. If there is a non-numeric character in the string, it stops at that
> point. So "09" is 9 and "09t" is 9 but "0t9" is 0.
>
> Brian Moon
Yeah, I know--it winds up being a strtol() call. However, since PHP
does interpret octal and hex integer literals, it seems odd that it
won't interpret them when encapsulated in strings. This does look
intentional though, since strtol() is called with a base of 10 in
zend_operators.c (line 259 in cvs); replacing it with a base of 0
gives the result I (personally) would have expected.
So--is it intentional because it would screw some people up to have
left-zero-padded string numbers interpreted as octals, or is there
another deeper reason that using 0 as the base for strtol() is a bad
idea, or is this unintentional?
> ----- Original Message -----
> From: "Lars Torben Wilson" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Monday, May 14, 2001 1:29 PM
> Subject: [PHP-DEV] Integer casts broken or...?
>
>
> >
> > Type casting to int from string works only for decimal values--is this
> > by design? Example:
> >
> > echo (int) '09' . ', ' . (int) '0x24';
> >
> > ...produces:
> >
> > 9, 0
> >
> > which seems intuitively wrong (I'd have expected 0, 36).
> >
> > Is this wrong, or should I just document it?
> >
> >
> > Thanks,
> >
> > Torben
> >
> > --
> > Torben Wilson <[EMAIL PROTECTED]>
> > http://www.thebuttlesschaps.com
> > +1.604.709.0506
> >
> >
> > --
> > PHP Development Mailing List <http://www.php.net/>
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > To contact the list administrators, e-mail: [EMAIL PROTECTED]
> >
> >
> >
>
--
Torben Wilson <[EMAIL PROTECTED]>
http://www.thebuttlesschaps.com
+1.604.709.0506
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]