簡體   English   中英

PHP為什么不打印0值?

[英]Why won't PHP print 0 value?

我一直在對華氏溫度進行攝氏(反之亦然)計算器。 所有這些都很好用,但是當我嘗試計算32華氏度到攝氏溫度時,它應該是0,但什么也不顯示。 我不明白為什么它不會回顯0值。

這是一些代碼:

<?php
// Celsius and Fahrenheit Converter
// Programmed by Clyde Cammarata

$error = '<font color="red">Error.</font>';

function tempconvert($temptype, $givenvalue){
    if ($temptype == 'fahrenheit') {
        $celsius = 5/9*($givenvalue-32);
        echo $celsius;
     }

    elseif ($temptype == 'celsius') {
        $fahrenheit = $givenvalue*9/5+32;
        echo $fahrenheit;
    }
    else {
        die($error);
        exit();

    }
}

tempconvert('fahrenheit', '50');

?>

當它什么都不打印時,您可能會在臨時類型“華氏度”中打錯字嗎?

該代碼與temptype相匹配,如果不是F或C,則會出錯。 除了沒有將$ error聲明為global $error; 它使用局部未定義變量(您不得啟用將發出警告的通知),並且未定義將打印為“”空字符串。

die()等同於exit()。 單個參數的整數值為0的函數向PHP表示您剛剛執行的任何操作均成功。 對於函數,如果要輸出0值,則需要使用echo或print,而不要使用die()或exit()。

此外,考慮更新函數以返回值,而不是直接輸出它。 這將使您的代碼更具可重用性。

有關狀態代碼的更多信息,請參見:

http://php.net/manual/en/function.exit.php

 echo (float) $celcius;

這將為您完成工作。

看起來$celcius值為0(int類型)而不是“ 0”(字符串類型),因此它不會回顯,因為php會將其讀取為false(0 = false,1 = true)。

嘗試更改您的代碼

echo $celcius;

echo $celcius."";

要么

echo (string) $celcius;

它將您的變量轉換為字符串

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM