由于 NULL 和 0 在 php 中都返回為空,我正在努力根據來自 mysqli 記錄集的雙精度類型結果來確定差異。我已經嘗試轉換每個場景以返回更易于管理的返回字符串:if($val == 0){ echo "No Cost Option";} elseif (empty($val)){ echo "UNCOSTED";} else { echo "£ ".number_format($val ,2);}理論上,如果數據庫中存在零,它應該返回“無成本選項”。同樣,如果 DB 返回 NULL,它應該返回“UNCOSTED”。最后,如果有一個值,它將簡單地格式化該值。當前(并且錯誤地),NULL 和 0 的處理方式相同,因此都被視為“無成本選項”。
2 回答

呼喚遠方
TA貢獻1856條經驗 獲得超11個贊
您可以嚴格比較null. 如果您嚴格與整數進行比較,它可能不起作用,因為結果將是一個數字字符串。
反轉您的 if 語句順序并首先檢查 null。
if (null === $val) {
echo "UNCOSTED";
} elseif ($val == 0) {
echo "No Cost Option";
} else {
echo "£ ".number_format($val, 2);
}

不負相思意
TA貢獻1777條經驗 獲得超10個贊
如果您嚴格想與數字 0 進行比較,則應使用===
if($val === 0){
echo "No Cost Option";
} elseif (empty($val)){
echo "UNCOSTED";
} else {
echo "£ ".number_format($val ,2);
}
您使用 === 來獲得嚴格相同的比較(類型和值)。
如果你想要更精確,
0、null、false、"0"、[](空數組)和更多(參見類型比較)的值相等。所以
0 == null == false == "0" == array()
但是,如果您將它們的類型與===進行比較,則它們不是
- 2 回答
- 0 關注
- 110 瀏覽
添加回答
舉報
0/150
提交
取消