Php 你能用一个变量作为操作顺序吗?
我正在使用html和php编写一个基本的计算器脚本。方法是输入两个数字,然后选择要使用的运算符 HTML代码Php 你能用一个变量作为操作顺序吗?,php,html,variables,syntax,calculator,Php,Html,Variables,Syntax,Calculator,我正在使用html和php编写一个基本的计算器脚本。方法是输入两个数字,然后选择要使用的运算符 HTML代码 计算器 计算器 + - * / PHP代码 计算器 这($result=$num1$calc$num2;)是合乎逻辑的还是完全错误的?还有其他选择吗?任何帮助都将不胜感激。不,PHP中没有该功能 您需要一个开关语句或某种条件: switch($calc) { case "+": return $num1 + $num2; brea
计算器
计算器
+
-
*
/
PHP代码
计算器
这($result=$num1$calc$num2;)是合乎逻辑的还是完全错误的?还有其他选择吗?任何帮助都将不胜感激。不,PHP中没有该功能 您需要一个
开关语句或某种条件:
switch($calc)
{
case "+":
return $num1 + $num2;
break;
case "-":
return $num1 - $num2;
break;
}
注意:有人会不可避免地注意到,如果在每种情况下都使用return
,那么break
表达式并不是绝对必要的,但是它们在规范中,IDE有时会发现它们不存在。试试这个
<?php
$num1=$_GET['num1']; // get value 1 from your form
$num2=$_GET['num2'];// get value 2 from your form
$calc=$_GET['calc']; // get operator from your form
$operators = array(
'+' => 'bcadd',
'-' => 'bcsub',
'*' => 'bcmul',
'/' => 'bcdiv'
);
echo $operators[$calc]($num1, $num2);
?>
请参见《leemo代码》中的更多内容,这是正确的方法。使用任何形式的评估或类似评估都是一种粗略的假设,即输入是正确的,而不是恶意的。此外,您可能应该从输入的数字中删除任何看起来不像数字、+ve或-ve或小数点的内容。也就是说,使用正则表达式只允许那些合法的输入字符,其他什么都不允许。这对我来说很有效,但我没有得到任何输出。我怎么能用这个来回显结果呢?@Scooterpar我假设你要将上面的代码转储到一个函数中。您只需将return
更改为echo
,我还没有对其进行测试,但是您可能会遇到一些url编码问题。除此之外,这是一个很好的答案。
switch($calc)
{
case "+":
return $num1 + $num2;
break;
case "-":
return $num1 - $num2;
break;
}
<?php
$num1=$_GET['num1']; // get value 1 from your form
$num2=$_GET['num2'];// get value 2 from your form
$calc=$_GET['calc']; // get operator from your form
$operators = array(
'+' => 'bcadd',
'-' => 'bcsub',
'*' => 'bcmul',
'/' => 'bcdiv'
);
echo $operators[$calc]($num1, $num2);
?>