Re: Found a PHP bug!!!!!!!!!
| From: | Scott Fletcher | Date: | Mon, 27 Jan 2003 20:44:37 +0000 |
| Subject: | Re: Found a PHP bug!!!!!!!!! | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-133288@lists.php.net to get a copy of this message | ||
I do know that integer, string, double, float, etc.... are different.. I
have been using hte appropriate method like in javascript and c programming,
like converting it to integer and so on.... But when I start using PHP, I
find no such document of it and I have been using it for 3 years without a
problem. I asked people is there such a thing as converting it by using the
function and they told me there is no such a thing and that it is done
automatically... Now my time is a little bit wasted. So, I will correct
the problem with the php script...
I recently looked up on the manual as Jason Wong instructed me to. I
havne't found the answer since the document is a little bit mixed up.
Okay, I'm going back to my old way as I did in javascript and c programming.
So for php, it would be
floatval() for float...
strval() for string....
settype() for whatever......
intval() for integer....
Um, what about double???
Thanks,
Scott F.
"Chris Hayes" <chayes@antenna.nl> wrote in message
news:5.1.1.6.0.20030127211703.014c47f8@pop4.antenna.nl...
>
> >Re: [PHP] Found a PHP bug!!!!!!!!!
> uh oh...
>
>
> >I don't see why a string wouldn't work when I use "08" (string) and
> >match
it
> >against the integer 8, or 08.
>
> They're just different types. Normally PHP is veeery flexible with
> types, like javascript, but it just can't be flexible for you here
because
> it needs to choose the most logic to the entire pool of programmers, and
then
> "08" = a string
> 8 = a decimal integer
> 08 = by definition an impossible octal integer, so 0.
>
> Since you cannot tell PHP that $var is of a certain type like in [other]
> programming languages, for example you want it to be treated as an
integer,
> PHP will handle it as what seems to be the most logic.
>
>
> You can try to use intval (does not alter a variable, only the value as it
> is used in a calculation or an if() statement) or settype (alters the
> variable).
>
>
>
> >"Kirk Johnson" <kjohnson@zootweb.com> wrote in message
> >news:B11731D518B5D61183C700A0C98BE0D9FFBE5D@chef...
> > >
> > > > -----Original Message-----
> > > > From: Scott Fletcher [mailto:scott@abcoa.com]
> > > >
> > > > Found a PHP bug, I'm using PHP version 4.2.3. I have been
> > > > struggling with
> > > > why PHP code failed to work with the month is August or
> > > > September
> > >
> > > I stumbled into this one a short while ago myself. It is not a bug,
but a
> > > feature! ;) When passing values of 08 or 09 (Aug and Sep), PHP
interprets
> > > them as octal numbers (because of the leading 0). However, 08 and 09
are
> > > invalid octal numbers, so PHP converts them to zero.
> > >
> > > The fixes are numerous:
> > > - remove the leading zero;
> > > - add zero to them before passing (addition forces a type conversion
to
> > > int);
> > > - force a type conversion to integer using (int);
> > > - quote them (when PHP converts a string to an integer, it removes
the
> > > leading zero);
> > >
> > > Kirk
> >
> >
> >
> >--
> >PHP General Mailing List (http://www.php.net/)
> >To unsubscribe, visit: http://www.php.net/unsub.php
>
>