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

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to