On 05/07/2012 09:28 AM, Arvids Godjuks wrote:
> Hello internals,
>
> I should voice my opinion that such things like comparing two strings
> starting with numbers and that they resolve to actual integer/float for
> comparation is bad, really bad. That just defies the logic and yealds
> absolutly unexpected results. I pride myself that i know the juggling rules
> well, but I'm shocked by this to say the least..
you have to see this in the "web context" where all input from a
HTTP client arrives as strings without type information (and some
database result data comes in as string data, too)
In that context it perfectly makes sense that
"1" == "1.0"
returns true even if both operands are strings.
"123ABF453..." == "123DFEABC..." is a different story though,
and guess what? These are *not* considered equal, at least not
by the 5.3.6 instance on the system i'm currently testing with:
<?php
$a = "123ABF453..."; //a password
$b = "123DFEABC..."; //another one
if ($a == $b){
echo "you're in";
} else {
echo "no, you don't get in *that* easy!";
}
?>
will print "no, you don't get in *that* easy!" just fine
--
hartmut