你可以使用变量作为操作顺序吗?

时间:2013-12-09 04:11:09

标签: php html variables syntax calculator

我正在使用html和php处理基本的计算器脚本。我们的想法是输入两个数字并选择您想要使用的运算符。

HTML代码     

<html>
<head>
<title>Calculator</title>
<meta charset="utf-8" />
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body>

<div id="wrapper">

<h3>Calculator</h3>

<form action="calc.php" method="get">

<p><input name="num1" type="text" size="8" maxlength="8">

<select name="calc">
    <option value="+">+</option>
    <option value="-">-</option>
    <option value="*">*</option>
    <option value="/">/</option>
</select>

<input name="num2" type="text" size="8" maxlength="8"></p>

<p><input type="submit" value="Calculate"></p>

</form>

</div>

</body>
</html>

PHP代码     

<html>
<head>
    <title>Calculator</title>
    <meta charset="utf-8" />
    <link href="style2.css" rel="stylesheet" type="text/css">
</head>

<body>

<div id="wrapper">

<?
    $num1=$_GET['num1'];
    $num2=$_GET['num2'];
    $calc=$_GET['calc'];

    $result = $num1 $calc $num2;

    echo "$result";
?>
</div>
</body>

</html>

这是($ result = $ num1 $ calc $ num2;)逻辑还是完全错误?还有其他选择吗?任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

PHP中没有该功能。

您需要switch声明或某种条件:

switch($calc)
{
    case "+":
        return $num1 + $num2;
        break;
    case "-":
        return $num1 - $num2;
        break;
}

注意:有人会不可避免地注意到,如果您在每个案例中使用breakreturn表达式并非严格必要,但他们在规范和IDE有时会缺席。

答案 1 :(得分:1)

试试这个

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

BCMath

了解详情