亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

確定 NULL、零(雙精度)和值(雙精度)之間的差異

確定 NULL、零(雙精度)和值(雙精度)之間的差異

PHP
Cats萌萌 2021-11-13 17:21:00
由于 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);

}


查看完整回答
反對 回復 2021-11-13
?
不負相思意

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()

但是,如果您將它們的類型與===進行比較,則它們不是


查看完整回答
反對 回復 2021-11-13
  • 2 回答
  • 0 關注
  • 110 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號