Edit report at https://bugs.php.net/bug.php?id=63599&edit=1

 ID:                 63599
 Updated by:         [email protected]
 Reported by:        michel dot lecorsier at orange dot fr
 Summary:            Operators : == is useless
-Status:             Open
+Status:             Spam
 Type:               Bug
 Package:            *Programming Data Structures
 Operating System:   Ubuntu
 PHP Version:        5.4.9
 Block user comment: N
 Private report:     N



Previous Comments:
------------------------------------------------------------------------
[2012-11-25 17:20:38] michel dot lecorsier at orange dot fr

Description:
------------
== is useless.

    It’s not transitive. "foo" == TRUE, and "foo" == 0… but, of course, 
TRUE != 0.
    == converts to numbers when possible (123 == "123foo"… although "123" != 
"123foo"), which means it converts to floats when possible. So large hex 
strings (like, say, password hashes) may occasionally compare true when 
they’re not. Even JavaScript doesn’t do this.
    For the same reason, "6" == " 6", "4.2" == "4.20", and "133" == "0133". But 
note that 133 != 0133, because 0133 is octal. But "0x10" == "16" and "1e3" == 
"1000"!
    === compares values and type… except with objects, where === is only true 
if both operands are actually the same object! For objects, == compares both 
value (of every attribute) and type, which is what === does for every other 
type. What.



Test script:
---------------
<?php

$toto = "Foo";

if ($toto == "foo")
{
    echo 'yes';
    exit;
}
else
{
    echo 'fail';
    exit;
}



------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=63599&edit=1

Reply via email to