0.00
我们先来看一个需求,判断一个传值过来的价格参数,如果这个价格参数不为零的话,就会有一些操作,一般我们都是这样写:
if (!empty($price)) {
// do something
}
但是这样写如果会有一个BUG,我们来先一个示例:
$a = 0.00;
$b = '0.00';
echo (empty($a) ? "empty a" : "not empty a "); //result empty a
echo "</br>";
echo (empty($b) ? "empty b" : "not empty b"); //result not empty b
由于 PHP 是弱类型,类型检查不严格,也就是说如果上面那个 $price 如果传的是字符串’0.00’,结果就会执行 if 里面的代码,这就导致你程序的一个 BUG。
那么怎么解决这个 BUG 呢?其实也很简单,我们把字符串统一强制转换成浮点型就可以了:
$c = (float)$b;
echo (empty($c) ? "empty c" : "not empty c"); //result empty c
$price = '0.00';
if (!empty((float)$price)) {
// do something
}