var_dump(md5('240610708') == md5('QNKCDZO'));
Output:
bool(true)
Example: http://3v4l.org/2vrMi
md5('240610708')
's result is 0e462097431906509019562988736854
.
md5('QNKCDZO')
's result is 0e830400451993494058024219903391
.
They are both float number format strings (numerical strings), and if you use ==
in php, when compare a number with a string or the comparison involves numerical strings, then each string is converted to a number and the comparison performed numerically.
Both of the strings are converted to 0
when compared with ==
, if you want to compare them as string, remember to use ===
(strict comparison) instead.
You need to use the type-sensitive comparison operator ===
.
The hashes evaluate to 0e462097431906509019562988736854
and 0e830400451993494058024219903391
, respectively. When you use ==
, each is converted to a numeric representation because of the e
(scientific notation), so they each become 0
. 0 == 0
is true.
On the other hand, this:
md5('240610708') === md5('QNKCDZO')
returns false
because the string values are different. ===
forces type-sensitive comparison.