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;
?>

0

Решение

Следующее утверждение всегда будет истинным, поскольку вы фактически присваиваете значение в своем выражении if, а не сравниваете его.

if($y = 0)

в

if(0 == $y)
3

Другие решения

Просто измените это:

(Если этот код отсутствует в функции)

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

Следующий код отлично подойдет для вас

= означает назначить

== означает сравнение

в вашей ситуации вам нужно сравнить, если условие

<?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