標題沒有要引戰啦 QQ
不過今天會談到一些 PHP 容易疏忽的特性
今天使用的工具 php sandbox
http://sandbox.onlinephpfunctions.com/
echo '923' == 923; // True
echo 'feifei'== 0;// True
echo 1e9 == 10e8;// True
在 php 當中以 0e
開頭會被 php 視為 0
因此有許多字串經過 md5 會變成 0e 開頭的字串
若進行若比較的話就會很容易會產生 bug
<?php
$a = 's878926199a';
$b = 's155964671a';
if (md5($a) == md5($b)){
echo 'same';
}
?>
明明是不同的字串卻會印出 same 。
修正的方式,可以使用 PHP 中的 ===
進行比較,==
是只有比較值,如果是 ===
則是比較型態跟值。