我想制作一个计算器。我做了代码,但问题是当一些数字除以零时它给出一个异常,所以它无法生成正确的结果,是否有一个修复程序?见代码
<?php
$x = $_POST['x'];
$y = $_POST['y'];
$tafel = 10;
$antwoord = '' ;
{
if($y = 0)
return 'Voer voor y een ander getal in';
}
switch ($_POST['type']) {
case 'plus':
$antwoord = $x + $y;
break;
case 'keer':
$antwoord = $x * $y;
break;
case 'wortel':
$antwoord = sqrt($x);
break;
case 'min':
$antwoord = $x - $y;
break;
case 'deel':
$antwoord = $x / $y;
break;
case 'kwadraat':
$antwoord = pow($x, 2);
break;
case 'macht':
$antwoord = pow($x, $y);
break;
case 'tafel':
for($i = $x; $i <= 10; $i++){
echo $x * $i.'<br>';
}
break;
default:
# code...
break;
}
echo '<h1 id="answer"> Antwoord:</h1><br>';
echo $antwoord;
?>
答案 0 :(得分:3)
以下陈述将始终为真,因为您实际上是在if语句中分配值,而不是比较它。
if($y = 0)
到
if(0 == $y)
答案 1 :(得分:2)
只需改变一下:
(如果此代码不在函数中)
return 'Voer voor y een ander getal in';
到此:
die('Voer voor y een ander getal in');
这样脚本停止了!你必须做这样的比较:
if($y == 0)
//^^ See here 2x '='
有关比较运算符的详细信息,请参阅手册:http://php.net/manual/en/language.operators.comparison.php
答案 2 :(得分:0)
以下代码可以正常使用
=表示分配
==表示比较
在您的情况下,您需要比较条件
<?php
$x = $_POST['x'];
$y = $_POST['y'];
$tafel = 10;
$antwoord = '' ;
{
if($y == 0)
return 'Voer voor y een ander getal in';
}
switch ($_POST['type']) {
case 'plus':
$antwoord = $x + $y;
break;
case 'keer':
$antwoord = $x * $y;
break;
case 'wortel':
$antwoord = sqrt($x);
break;
case 'min':
$antwoord = $x - $y;
break;
case 'deel':
$antwoord = $x / $y;
break;
case 'kwadraat':
$antwoord = pow($x, 2);
break;
case 'macht':
$antwoord = pow($x, $y);
break;
case 'tafel':
for($i = $x; $i <= 10; $i++){
echo $x * $i.'<br>';
}
break;
default:
# code...
break;
}
echo '<h1 id="answer"> Antwoord:</h1><br>';
echo $antwoord;
?>