Хочу сделать калькулятор. Я сделал код, но проблема в том, что когда какое-то число делится на ноль, это дает исключение, поэтому он не может сгенерировать правильный результат, есть ли исправление для этого? см код
<?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;
?>
Следующее утверждение всегда будет истинным, поскольку вы фактически присваиваете значение в своем выражении if, а не сравниваете его.
if($y = 0)
в
if(0 == $y)
Просто измените это:
(Если этот код отсутствует в функции)
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
Следующий код отлично подойдет для вас
= означает назначить
== означает сравнение
в вашей ситуации вам нужно сравнить, если условие
<?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;
?>