我在做一个电商项目的时候遇到一个问题,那就是需要判断传过来的金额是否为空来进行分别不同的操作,然后我用的下面这个方法:
$str = '0.00';
if( empty($str) ) {
echo ' empty ';
} else {
echo ' not empty ';
}
结果这种写法是会出问题的,会执行else里面的not empty,也就是说当你用empty检测金额是否为空的时候会导致你的程序出现bug,不会按照你预想的既定计划执行,这是因为PHP 是弱类型,类型检查不严格,0.00被他当作了一个字符串,而不是一个0,要解决这个问题也简单,就是遇见类似判断的时候,把字符串统一强制转换成浮点型就可以了,如:
$str = '0.00';
if( empty( (float)$str) ) {
echo ' empty ';
} else {
echo ' not empty ';
}
结果输出 empty 。