我遇到了这种情况,可能是代码中的逻辑错误。
这是我的代码
foreach ($options as $option) {
if (($option['max_value'] > 0) && $total_value <= $option['max_value']) {
$selected_options[] = $option['option_id'];
continue;
}
if (($option['min_value'] > 0) && $total_value >= $option['min_value']) {
$selected_options[] = $option['option_id'];
}
}
这工作正常。但是如果我替换(这是我之前所做的,所以逻辑错误)
if(($option['min_value'] > 0 ) ..... ) with
if(!empty($option['min_value']) .... ) same for checking max_value.
但问题只是在检查 min_value
它将 0.0000 视为非空,所以我没有得到预期的输出。有人可以解释一下有什么问题吗?
$options 值来自数据库,我有 2 行
最小值 = 0.0000 最大值 = 20.0000
最小值 = 21.0000 最大值 = 0.0000
谢谢!!
谢谢你们!!这是一个教训!!!