var_dump(md5('240610708') == md5('QNKCDZO'));
Вывод:
bool(true)
Пример: http://3v4l.org/2vrMi
md5('240610708') – 0e462097431906509019562988736854 .
md5('QNKCDZO') – 0e830400451993494058024219903391 .
Они являются строками чисел с плавающим номером ( числовые строки ), и если вы используете == в php, когда сравниваете число со строкой или сравниваете числовые строки, то каждая строка преобразуется в число и выполняется сравнение численно.
Обе строки преобразуются в 0 по сравнению с == , если вы хотите сравнить их как строку, не забудьте использовать === ( строгое сравнение ).
Смотрите: PHP выражает две разные строки одинаковыми
Вам нужно использовать оператор сравнения с типом === .
0e462097431906509019562988736854 оцениваются до 0e462097431906509019562988736854 и 0e830400451993494058024219903391 , соответственно. Когда вы используете == , каждый из них преобразуется в числовое представление из-за e (научная нотация), поэтому каждый из них становится 0 . 0 == 0 истинно.
С другой стороны, это:
md5('240610708') === md5('QNKCDZO')
возвращает false поскольку значения строк различаются. === заставляет силовое сравнение.