php关于MD5==判断问题
php是一门弱类型语言,很多时候不用特地考虑各种类型的转换比较省心,但是也有糟心的时候。
"0"==0是相等的,返回ture
2-"1aaa"==1返回true
null==[]也是相等的,返回true
但是自动预判类型并且自动转换也有不好的地方:
<span color="red">"0e1234"=="0e5678"也返回true,什么鬼,原来是字符串有0e开头后面跟数字的话就会被转化为数字0!</span>
那么md5的时候如果出现了类似的值如果用==判断就GG了:
md5("QNKCDZO")的结果为"0e830400451993494058024219903391"
md5("240610708")的结果为"0e462097431906509019562988736854"
<span color="red">md5("QNKCDZO")==md5("240610708")的结果是true!</span>
sha1自然也是如此的,所以遇到要比较md5或者sha1值的时候还是都用===比较好,一定要牢记!
更多>>