带有函数和开关的php基本计算器,但结果是

带有函数和开关的php基本计算器,但结果是,php,function,calculator,Php,Function,Calculator,我目前正在做一些简单的计算器练习,但输出或结果没有显示。这里是我的代码,希望您能帮助我:/ <input type="radio" value= "Addition" name="calcu"> Addition .<br /> <input type="radio" value= "Subtraction" name="calcu"> Subtraction .<br /> <input type="radio" v

我目前正在做一些简单的计算器练习,但输出或结果没有显示。这里是我的代码,希望您能帮助我:/

    <input type="radio" value= "Addition" name="calcu"> Addition .<br />
    <input type="radio" value= "Subtraction" name="calcu"> Subtraction .<br />
    <input type="radio" value= "Multiplication" name="calcu"> Multiplication .<br />
    <input type="radio" value= "Division" name="calcu"> Division .<br />
<?php
$num1 = $_POST['num1'];
$num2 = $_POST['num2'];
$calcu = $_POST['calcu'];

    function calculate($n1,$n2)
    {
        switch('$calcu')
        {
        case "Addition";
            $compute = $n1 + $n2; 
            break;
        case "Subtraction";
            $compute = $n1 - $n2; 
            break;
        case "Multiplication";
            $compute = $n1 * $n2; 
            break;
        case "Division";
            $compute = $n1 / $n2; 
            break;
        }
    }
echo "$calcu <br /> <br /> 1st Number: $num1 <br /> 2nd Number: $num2 <br /><br />";
echo "Answer is:" .calculate($num1,$num2);
?>
添加。
减法。
乘法。
分部。
开关('$calcu')
更改为
开关($calcu)

正如@PeterM所提到的,您正在访问超出范围的变量
$calcu
。您可以将
$calcul
变量传递给fun
calculate
或通过
$\u POST
数组直接访问

使用
开关($\u POST['calcu'])

通过
calculate($n1,$n2,$calcu)

调用乐趣这里是完整的代码:

<?php
$num1 = $_POST['num1'];
$num2 = $_POST['num2'];
$calcu = $_POST['calcu'];

    function calculate($n1,$n2, $calcu) // set $calcu as parameter
    {
        switch($calcu)
        {
        case "Addition": // here you have to use colons not semi-colons
            $compute = $n1 + $n2; 
            break;
        case "Subtraction":
            $compute = $n1 - $n2; 
            break;
        case "Multiplication":
            $compute = $n1 * $n2; 
            break;
        case "Division":
            $compute = $n1 / $n2; 
            break;
        }
        return $compute; // returning variable
    }
echo "$calcu <br /> <br /> 1st Number: $num1 <br /> 2nd Number: $num2 <br /><br />";
echo "Answer is:" .calculate($num1,$num2, $calcu); // you need to pass $calcu as argument of that function
?>

开关('$calcu')
更改为
开关($calcu)
。应该是这样

但不仅如此。您的变量未定义,因为您试图在提交表单之前解决它们,即它们还不存在

$num1 = $_POST['num1'];
$num2 = $_POST['num2'];
$calcu = $_POST['calcu'];
在那里你可以称呼他们

echo "$calcu <br /> <br /> 1st Number: $num1 <br /> 2nd Number: $num2 <br /><br />";
echo "Answer is:" .calculate($num1,$num2);
echo“$calcu

第一个数字:$num1
第二个数字:$num2

”; echo“答案是:”.calculate($num1,$num2);
执行此操作的正确方法是检查表单是否已提交:

    <input type="radio" value= "Addition" name="calcu"> Addition .<br />
    <input type="radio" value= "Subtraction" name="calcu"> Subtraction .<br />
    <input type="radio" value= "Multiplication" name="calcu"> Multiplication .<br />
    <input type="radio" value= "Division" name="calcu"> Division .<br />
<?php
if (isset($_POST)){
    $num1 = $_POST['num1'];
    $num2 = $_POST['num2'];
    $calcu = $_POST['calcu'];

        function calculate($n1,$n2)
        {
            switch('$calcu')
            {
            case "Addition";
                $compute = $n1 + $n2; 
                break;
            case "Subtraction";
                $compute = $n1 - $n2; 
                break;
            case "Multiplication";
                $compute = $n1 * $n2; 
                break;
            case "Division";
                $compute = $n1 / $n2; 
                break;
            }
        }
    echo "$calcu <br /> <br /> 1st Number: $num1 <br /> 2nd Number: $num2 <br /><br />";
    echo "Answer is:" .calculate($num1,$num2);

    unset($_POST);
}
?>
添加。
减法。
乘法。
分部。

您需要返回$compute和echo calculate(…)。但这不是代码中唯一的问题。
'$calcu'
不是变量,您需要使用
$calcu
,但这不在函数的范围内。相反,您必须使用
$\u POST['calcu']
。另外,您需要在
case
之后添加冒号,而不是分号。@str是否将其作为参数/参数传递?@ChristineJavier有一件事我忘了向下投票(-1)这篇文章是因为它没有显示任何研究成果或是有用的。
$calcu
不在函数范围内,它在每种情况下都表示未定义变量sir@PeterM感谢您注意到fn中的变量范围。@Justin已经尝试了
开关($\u POST['calcu'])
但没有显示:/@ChristineJavier您在代码中有很多错误,例如语法。最后,我不知道添加
$calcu
作为参数:D非常感谢;)顺便说一句,夫人,哈哈,谢谢!我知道,我不是瞎子。感谢真主。但我仍然很高兴,先生:今天,D至少编写了PHP的第一个函数。
    <input type="radio" value= "Addition" name="calcu"> Addition .<br />
    <input type="radio" value= "Subtraction" name="calcu"> Subtraction .<br />
    <input type="radio" value= "Multiplication" name="calcu"> Multiplication .<br />
    <input type="radio" value= "Division" name="calcu"> Division .<br />
<?php
if (isset($_POST)){
    $num1 = $_POST['num1'];
    $num2 = $_POST['num2'];
    $calcu = $_POST['calcu'];

        function calculate($n1,$n2)
        {
            switch('$calcu')
            {
            case "Addition";
                $compute = $n1 + $n2; 
                break;
            case "Subtraction";
                $compute = $n1 - $n2; 
                break;
            case "Multiplication";
                $compute = $n1 * $n2; 
                break;
            case "Division";
                $compute = $n1 / $n2; 
                break;
            }
        }
    echo "$calcu <br /> <br /> 1st Number: $num1 <br /> 2nd Number: $num2 <br /><br />";
    echo "Answer is:" .calculate($num1,$num2);

    unset($_POST);
}
?>