我一直在向摄氏温度计算华氏度(反之亦然)计算器。所有这些都很有效,但是当我尝试计算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');
?>
答案 0 :(得分:1)
当它什么都没有打印时,你能不能在'fahrenheit'中输入一个错字?
代码匹配temptype,如果它不是F或C,则会出错。除非$ error未声明global $error;
使用本地未定义变量(您必须没有启用通知才能发出警告),并且未定义打印为“”空字符串。
答案 1 :(得分:0)
die()等同于exit()。使用单个参数作为整数值0的函数向PHP指示您刚刚执行的任何操作都是成功的。对于你的函数,如果你想要输出值0,你会想要使用echo或print,而不是die()或exit()。
此外,请考虑更新函数以返回值而不是直接输出它。它将使您的代码更具可重用性。
此处有关状态代码的更多信息:
答案 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;
它会将您的变量转换为字符串