为什么PHP不打印0值?

时间:2014-12-06 02:50:19

标签: php echo

我一直在向摄氏温度计算华氏度(反之亦然)计算器。所有这些都很有效,但是当我尝试计算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');

?>

4 个答案:

答案 0 :(得分:1)

当它什么都没有打印时,你能不能在'fahrenheit'中输入一个错字?

代码匹配temptype,如果它不是F或C,则会出错。除非$ error未声明global $error;使用本地未定义变量(您必须没有启用通知才能发出警告),并且未定义打印为“”空字符串。

答案 1 :(得分:0)

die()等同于exit()。使用单个参数作为整数值0的函数向PHP指示您刚刚执行的任何操作都是成功的。对于你的函数,如果你想要输出值0,你会想要使用echo或print,而不是die()或exit()。

此外,请考虑更新函数以返回值而不是直接输出它。它将使您的代码更具可重用性。

此处有关状态代码的更多信息:

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

答案 2 :(得分:0)

 echo (float) $celcius;

这将为您完成工作。

答案 3 :(得分:-2)

看起来$celcius的值为0(int类型)而不是&#34; 0&#34; (字符串类型),所以它不会回应因为php读取为false(0 = false,1 = true)。

尝试更改您的代码

echo $celcius;

echo $celcius."";

echo (string) $celcius;

它会将您的变量转换为字符串