In PHP there are two operators for comparisons, the double and triple
equivalance.

Double equivalance just check's the boolean type so if (0 == 'n') is
translated to if (False == False), where as triple equivalance checks the
data types as well so if (0==='n') becomes if (Int(False)==String(False))
but since the data types don't match that would be False.

to get a better reference check PHP.net for 'Bolean Types' , because  I
think I dodn't explain the double equivalance right, and also it will
clarify situations of the Null type.

Bobby


"Rob Adams" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> I don't need anything fixed, I'm just curious about something I noticed.
>
> I'm doing a comparison between a variable and a hard coded char.  Like
this:
> if ($k1 == "n")
>
> The variable is usually the first key in an array (0) so it should usually
> evaluate false, but it was true every time until I changed it to:
> if ($k1 === "n")
>
> So I'm assuming that it decided that since $k1 was an int to convert "n"
to
> an int (which would be 0) and conclude that 0 does indeed equal "n".  So I
> decided for fun to try:
> if ("n" == $k1)
>
> And it still was true everytime.  So why does it always try convert my
> literal to an int instead of use the variable as a string?
>
> Just curious.  Thanks.
>
>   -- Rob
>
>



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to