Прошу оценить код
Начал изучать PHP и есть задание: Напишите программу-калькулятор a. Форма для ввода двух чисел, выбора знака операции и кнопка "равно" b. Данные пусть передаются методом GET из формы (да, можно и так!) на скрипт, который их примет и выведет выражение и его результат c*. Попробуйте улучшить программу. Пусть данные отправляются на ту же страницу на PHP, введенные числа останутся в input-ах, а результат появится после кнопки "равно". Вот сам код:
<?php
$firstNumber = $_GET['firstNumber'];
$secondNumber = $_GET['secondNumber'];
$sign = $_GET['sign'];
$res = 0;
if(!empty(is_numeric($firstNumber))
&& !empty(is_numeric($secondNumber))){
switch ($sign){
case '+':
$res = $firstNumber + $secondNumber;
break;
case '-':
$res = $firstNumber - $secondNumber;
break;
case '*':
$res = $firstNumber * $secondNumber;
break;
case '/':
$res = $firstNumber / $secondNumber;
break;
default : $res ='Ошибка! Попробуй еще...';
break;
}
}else{
$firstNumber = 0;
$secondNumber = 0;
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Calculate</title>
</head>
<body>
<form action="/3/calc.php" method="get">
<input type="text" name="firstNumber" placeholder="Enter first number" value="<?php echo $firstNumber ?>">
<select name="sign">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type="text" name="secondNumber" placeholder="Enter second number" value="<?php echo $secondNumber ?>">
<button type="submit">=</button> <?php echo $res; ?>
</form>
</body>
</html>
Хотел бы получить отзыв. Может, упустил какую-то проверку. Или сам код можно улучшить. Буду благодарен за обратную связь. Спасибо!
Ответы (1 шт):
Автор решения: Ипатьев
→ Ссылка
В целом очень неплохо, но есть несколько замечаний
- Задача не решена, исходное выражение не выводится
- надо включить отображение ошибок РНР и исправить их. И всегда писать любой код с максимальным уровнем отображения ошибок.
- убрать совершенно бессмысленую функцию empty() и впредь применять её только по назначению
- убрать action="/3/calc.php"
- вывод делать предназначенным для этого тегом,
<?= $secondNumber ?> - я бы добавил внятные сообщения об ошибках, если какое-то знаение не проходит проверку, то так об это и написать, вместо игривых намёков.