Простой PHP-калькулятор

Я создаю базовый PHP-калькулятор, который позволяет вводить два значения и затем выбирает ваш оператор, а затем отображает ответ. Все работает нормально, за исключением того, что он не выводит ответ на вопрос о броузе.

Вот коды для файлов html и PHP:

<head> <meta charset="utf-8"> <title>Calculator</title> </head> <body> <form method="post" attribute="post" action="disp_form.php"> <p>First Value:<br/> <input type="text" id="first" name="first"></p> <p>Second Value:<br/> <input type="text" id="second" name="second"></p> <input type="radio" name="group1" id="add" value="add" checked="true"><p>+</p><br/> <input type="radio" name="group1" id="subtract" value="subtract"><p>-</p><br/> <input type="radio" name="group1" id="times" value="times"><p>x</p><br/> <input type="radio" name="group1" id="divide" value="divide"><p>/</p><br/> <p></p> <button type="submit" name="answer" id="answer" value="answer">Calculate</button> </form> </body> </html> 

PHP-файл:

 <!doctype html> <html> <head> <meta charset="utf-8"> <title>Answer</title> </head> <body> <p>The answer is: <?php if($_POST['group1'] == add) { echo "$first + $second"; } else if($_POST['group1'] == subtract) { echo "$first - $second"; } else if($_POST['group1'] == times) { echo "$first * $second"; } else($_POST['group1'] == divide) { echo "$first / $second"; } ?> </p> </body> </html> 

 <?php $result = ""; class calculator { var $a; var $b; function checkopration($oprator) { switch($oprator) { case '+': return $this->a + $this->b; break; case '-': return $this->a - $this->b; break; case '*': return $this->a * $this->b; break; case '/': return $this->a / $this->b; break; default: return "Sorry No command found"; } } function getresult($a, $b, $c) { $this->a = $a; $this->b = $b; return $this->checkopration($c); } } $cal = new calculator(); if(isset($_POST['submit'])) { $result = $cal->getresult($_POST['n1'],$_POST['n2'],$_POST['op']); } ?> <form method="post"> <table align="center"> <tr> <td><strong><?php echo $result; ?><strong></td> </tr> <tr> <td>Enter 1st Number</td> <td><input type="text" name="n1"></td> </tr> <tr> <td>Enter 2nd Number</td> <td><input type="text" name="n2"></td> </tr> <tr> <td>Select Oprator</td> <td><select name="op"> <option value="+">+</option> <option value="-">-</option> <option value="*">*</option> <option value="/">/</option> </select></td> </tr> <tr> <td></td> <td><input type="submit" name="submit" value=" = "></td> </tr> </table> </form> 

Лично я бы сделал переключатель вместо всего этого, если, else if, else

 $first = $_POST['first'] + 0;//a small "hack" to make sure its an int but allow negs!! $second= $_POST['second'] + 0; $operator = $_POST["group1"]; switch($operator) { case "add" echo "Answer is: " .$first + $second; break; case "subtract" echo "Answer is: " .$first - $second; break; case "times" echo "Answer is: " .$first * $second; break; case "divide" echo "Answer is: " .$first / $second; break; } 

Вам также нужно поместить математическую операцию [== 'add'] в кавычки

 if($_POST['group1'] == 'add') { echo $first + $second; } 

полный код будет выглядеть следующим образом:

 <?php $first = $_POST['first']; $second= $_POST['second']; if($_POST['group1'] == 'add') { echo $first + $second; } else if($_POST['group1'] == 'subtract') { echo $first - $second; } else if($_POST['group1'] == 'times') { echo $first * $second; } else if($_POST['group1'] == 'divide') { echo $first / $second; } ?> 

Вам нужно назначить $ first и $ second

 $first = $_POST['first']; $second= $_POST['second']; 

Кроме того, как сказал Travesty3, вам нужно выполнить свою арифметику вне цитат:

 echo $first + $second; 

Вы должны получить значения таким же образом, чтобы получить операцию калькулятора, которая выглядит так:

 <?php if($_POST['group1'] == add) { echo "$_POST['first']+ $_POST['second']; } ... and so on ?> 

Или, чтобы это стало проще, просто выполните:

  <!doctype html> <html> <head> <meta charset="utf-8"> <title>Answer</title> </head> <body> <p>The answer is: <?php $first = $_POST['first']; $second= $_POST['second']; if($_POST['group1'] == add) { echo "$first + $second"; } else if($_POST['group1'] == subtract) { echo "$first - $second"; } else if($_POST['group1'] == times) { echo "$first * $second"; } else($_POST['group1'] == divide) { echo "$first / $second"; } ?> </p> </body> </html> 
 $first = doubleval($_POST['first']); $second = doubleval($_POST['second']); if($_POST['group1'] == 'add') { echo "$first + $second = ".($first + $second); } // etc 

Проверка строки с использованием одинарных кавычек

Ex. $_POST['group1'] == 'add'