带有函数和开关的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
变量传递给funcalculate
或通过$\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);
}
?>