PHP计算器除以零错误?修复?

时间:2015-01-17 18:24:07

标签: php calculator

我想制作一个计算器。我做了代码,但问题是当一些数字除以零时它给出一个异常,所以它无法生成正确的结果,是否有一个修复程序?见代码

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

3 个答案:

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