我有一个非常奇怪的问题:在下面列出的代码中,4个echo几乎是相同的,但只有最后一个正常工作(前两个回声只打印加/减的答案,没有文本).
这是代码:
<html>
<body>
Welcome <?PHP echo $_POST["name"]; ?><br>
Your email address is: <?PHP echo $_POST["email"]; ?><br>
<?PHP $sk1 = $_POST["sk1"];
$sk2 = $_POST["sk2"];
$veiksm = $_POST["veiksmas"];
switch($veiksm){
default:
echo "Jus nepasirinkote veiksmo";
break;
case "sud":
echo "Sudeties veiksmo rezultatas: " .$sk1 + $sk2;
break;
case "ati":
echo "Atimties veiksmo rezultatas: " .$sk1 - $sk2;
break;
case "dal":
echo "Dalybos veiksmo rezultatas: " .$sk1 / $sk2;
break;
case "dau":
echo "Daugybos veiksmo rezultatas: " .$sk1 * $sk2;
break;
}
?>
</body>
</html>
解决方法:
您必须在计算周围加上括号,如:
echo "Atimties veiksmo rezultatas: " . ($sk1 - $sk2);
//^ See here ^
否则你可以想象你的echo语句如下:
"Sudeties veiksmo rezultatas: 17" + 5 // Same as 0 + 5, because the string is casted to int which is 0
*和/也可以,因为它们首先得到评估