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