php实现计算器
基础实现
使用PHP创建一个简单的计算器需要处理用户输入、执行运算并返回结果。以下是一个基于表单提交的示例:
<?php
$result = '';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$num1 = $_POST['num1'];
$num2 = $_POST['num2'];
$operator = $_POST['operator'];
switch ($operator) {
case '+':
$result = $num1 + $num2;
break;
case '-':
$result = $num1 - $num2;
break;
case '*':
$result = $num1 * $num2;
break;
case '/':
$result = ($num2 != 0) ? $num1 / $num2 : "除数不能为零";
break;
}
}
?>
<form method="post">
<input type="number" name="num1" required>
<select name="operator">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type="number" name="num2" required>
<button type="submit">计算</button>
</form>
<?php if ($result !== ''): ?>
<p>结果: <?php echo $result; ?></p>
<?php endif; ?>
安全增强
添加输入验证和过滤防止非法输入:
$num1 = filter_input(INPUT_POST, 'num1', FILTER_VALIDATE_FLOAT);
$num2 = filter_input(INPUT_POST, 'num2', FILTER_VALIDATE_FLOAT);
if ($num1 === false || $num2 === false) {
$result = "请输入有效数字";
}
扩展功能
支持更多运算符和连续计算:
case '^':
$result = pow($num1, $num2);
break;
case '%':
$result = $num1 % $num2;
break;
前端优化
使用HTML5增强用户体验:
<input type="number" step="any" name="num1" placeholder="第一个数字">
<input type="number" step="any" name="num2" placeholder="第二个数字">
完整示例
结合所有改进的完整代码:
<?php
$result = '';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$num1 = filter_input(INPUT_POST, 'num1', FILTER_VALIDATE_FLOAT);
$num2 = filter_input(INPUT_POST, 'num2', FILTER_VALIDATE_FLOAT);
$operator = $_POST['operator'];
if ($num1 === false || $num2 === false) {
$result = "无效输入";
} else {
switch ($operator) {
case '+': $result = $num1 + $num2; break;
case '-': $result = $num1 - $num2; break;
case '*': $result = $num1 * $num2; break;
case '/': $result = ($num2 != 0) ? $num1 / $num2 : "除数不能为零"; break;
case '^': $result = pow($num1, $num2); break;
case '%': $result = $num1 % $num2; break;
default: $result = "未知运算符";
}
}
}
?>
<!DOCTYPE html>
<form method="post">
<input type="number" step="any" name="num1" required>
<select name="operator">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">×</option>
<option value="/">÷</option>
<option value="^">^</option>
<option value="%">%</option>
</select>
<input type="number" step="any" name="num2" required>
<button type="submit">=</button>
</form>
<?php if ($result !== ''): ?>
<output>结果: <?php echo htmlspecialchars($result); ?></output>
<?php endif; ?>






