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

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

無法理解此行(in_array)

無法理解此行(in_array)

PHP
白豬掌柜的 2022-12-30 17:40:23
我在一個網站上找到了這段代碼,可以將攝氏度轉換為華氏度和開爾文。但是我看不懂里面的一行。function conv_temp($val , $type_val , $type_wanted) {  $tab_val = array("C", "F", "K");  if (!(in_array($type_val, $tab_val) && in_array($type_wanted,$tab_val)))    return 0;  switch ($type_val) {    case "C" : // degrees Celsius      switch ($type_wanted) {        case "C" :          return $val;        case "F" :          return ($val * 9 / 5 + 32);        case "K" :          return ($val + 273.16);    case "F" : // degrees Fahrenheit      switch ($type_wanted) {        case "C" :          return (($val - 32) * 5 / 9);        case "F" :          return $val;        case "K" :          return ((($val - 32) * 5 / 9) + 273.16);    case "K" : // degrees Kelvin      switch ($type_wanted) {        case "C" :          return ($val - 273.16);        case "F" :          return (($val - 273.16) * 9 / 5 + 32);        case "K" :          return $val;        }      }    }  }}echo conv_temp(5,'C','F')."\n";?>;為什么in_array必須return 0?我刪除了這一行,該功能仍然有效。
查看完整描述

2 回答

?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

return 0是為了確保switch僅當您在$tab_val數組中使用值時該案例才有效。

$tab_val = array("C", "F", "K");

因此,如果您使用 ,以外的任何符號C,函數將立即返回 0,而不執行擴孔代碼。FK

因此,您的代碼將在沒有該行的情況下運行,直到您輸入無效類型。

如果輸入無效類型return 0則輸出結果為0,否則為空。

即使您使用ckorf而不是CKorF結果也將為 0,因為值區分大小寫

echo conv_temp(5,'C','f')."\n";

上面代碼的輸出將為 0,因為我們使用f了而不是F


查看完整回答
反對 回復 2022-12-30
?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

這是為了防止用戶嘗試使用不存在的溫度符號調用函數的情況:


// EXAMPLE 1

echo conv_temp(5,'C','F')."\n";

// Output: 41


// EXAMPLE 2

echo conv_temp(5,'C','J')."\n";

// Output: 0

如果刪除測試并再次運行示例 2,則不會得到任何輸出:


echo conv_temp(5,'C','J')."\n";

// Output: 

編輯

如果按照0評論中的建議將 用作錯誤代碼,我會說這樣做不是最好的主意。如果你輸入一個實際轉換為 0 的溫度怎么辦?:


$temp = conv_temp(-273.16,'C','K');

if ($temp == 0) {

  echo "Conversion failed";

} else {

  echo "$temp";

}


// Output: Conversion failed


查看完整回答
反對 回復 2022-12-30
  • 2 回答
  • 0 關注
  • 133 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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