[SR-Users] how can string "0" be equal to int 0?
Andrei Pelinescu-Onciul
andrei at iptel.org
Fri Oct 15 16:57:55 CEST 2010
On Oct 15, 2010 at 13:44, Juha Heinanen <jh at tutpro.com> wrote:
> Andrei Pelinescu-Onciul writes:
>
> > Because "==" works only with arguments of the same type, 0 it's
> > autoconverted to "0". The alternative would be to log an error.
>
> andrei,
>
> please log an error, because it is hard to remember this uncommon
> comparison rule and seeing an error message would reveal the problem
> fast.
>
> > Here are the rules for ==:
> > /* if left is string, eval left & right as string and use string diff.
> > * if left is int eval as int using int diff
> > * if left is undef, look at right and convert to right type
> > */
>
> getting back to the example code, how can i check if value of a var
> is int 0? is there an is_int function?
No, there is no is_int function, but you could use a hack:
if (($v == 0) && ($v + 0 == (str)0))
will be true only if $v is int and == 0 ($v == 0 makes sure that
$v!="").
Andrei
More information about the sr-users
mailing list