Re: Re: Weird comparison error.

From: Date: Sat, 28 Jun 2003 20:43:01 +0000
Subject: Re: Re: Weird comparison error.
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-153290@lists.php.net to get a copy of this message
On Sat, 2003-06-28 at 11:28, Bobby Patel wrote: > 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 You got pretty close, but not quite. :) In the case of the equality operator '==', there is nothing specific to do with boolean evaluation going on. It just converts the string to its integer value implicitly before checking for equality, and according to the string->integer conversion rules, the string ends up being (int) 0 so the whole thing matches. Also, it might be easier to think about the identical operator '===' as just testing whether two values are identical, meaning that they are both of the same type, and that they both have the same value. More information: http://www.php.net/manual/en/language.types.type-juggling.php http://www.php.net/manual/en/language.types.string.php#language.types.string.conversion ...in fact, the whole 'Language' section of the manual has a bunch of stuff on this. Hope this helps, Torben -- Torben Wilson <torben@php.net> +1.604.709.0506 http://www.thebuttlesschaps.com http://www.inflatableeye.com http://www.hybrid17.com http://www.themainonmain.com -----==== Boycott Starbucks! http://www.haidabuckscafe.com ====-----

« previous php.general (#153290) next »