实现一个计算器Php
基础PHP计算器实现
创建一个简单的PHP计算器可以通过HTML表单接收用户输入,PHP处理计算逻辑并返回结果。以下是实现步骤:
HTML表单部分
<form method="post" action="calculator.php">
<input type="number" name="num1" placeholder="第一个数字" required>
<select name="operator">
<option value="add">+</option>
<option value="subtract">-</option>
<option value="multiply">×</option>
<option value="divide">÷</option>
</select>
<input type="number" name="num2" placeholder="第二个数字" required>
<button type="submit" name="calculate">计算</button>
</form>
PHP处理逻辑

<?php
if(isset($_POST['calculate'])){
$num1 = $_POST['num1'];
$num2 = $_POST['num2'];
$operator = $_POST['operator'];
$result = '';
switch($operator){
case 'add':
$result = $num1 + $num2;
break;
case 'subtract':
$result = $num1 - $num2;
break;
case 'multiply':
$result = $num1 * $num2;
break;
case 'divide':
$result = ($num2 != 0) ? $num1 / $num2 : '除数不能为0';
break;
}
echo "结果: ".$result;
}
?>
增强安全性计算器
为防止恶意输入,可添加输入验证:
if(is_numeric($num1) && is_numeric($num2)){
// 执行计算逻辑
} else {
echo "请输入有效数字";
}
面向对象实现
采用OOP方式封装计算器功能:

class Calculator {
public function calculate($num1, $num2, $operator){
switch($operator){
case 'add':
return $num1 + $num2;
case 'subtract':
return $num1 - $num2;
case 'multiply':
return $num1 * $num2;
case 'divide':
return ($num2 != 0) ? $num1 / $num2 : '除数不能为0';
default:
return '无效运算符';
}
}
}
// 使用示例
$calc = new Calculator();
echo $calc->calculate(10, 5, 'add');
添加历史记录功能
扩展计算器记录计算历史:
session_start();
if(!isset($_SESSION['history'])){
$_SESSION['history'] = array();
}
// 计算后添加记录
array_push($_SESSION['history'], "$num1 $operator $num2 = $result");
// 显示历史
foreach($_SESSION['history'] as $entry){
echo $entry."<br>";
}
完整代码示例
将HTML和PHP合并为单个文件:
<?php
session_start();
if(!isset($_SESSION['history'])){
$_SESSION['history'] = array();
}
$result = '';
if(isset($_POST['calculate'])){
$num1 = $_POST['num1'];
$num2 = $_POST['num2'];
$operator = $_POST['operator'];
if(is_numeric($num1) && is_numeric($num2)){
switch($operator){
case 'add':
$result = $num1 + $num2;
break;
case 'subtract':
$result = $num1 - $num2;
break;
case 'multiply':
$result = $num1 * $num2;
break;
case 'divide':
$result = ($num2 != 0) ? $num1 / $num2 : '除数不能为0';
break;
}
array_push($_SESSION['history'], "$num1 $operator $num2 = $result");
} else {
$result = "请输入有效数字";
}
}
?>
<form method="post">
<input type="number" name="num1" required>
<select name="operator">
<option value="add">+</option>
<option value="subtract">-</option>
<option value="multiply">×</option>
<option value="divide">÷</option>
</select>
<input type="number" name="num2" required>
<button type="submit" name="calculate">计算</button>
</form>
<?php
if($result !== ''){
echo "结果: ".$result;
}
if(!empty($_SESSION['history'])){
echo "<h3>计算历史</h3>";
foreach(array_reverse($_SESSION['history']) as $entry){
echo $entry."<br>";
}
}
?>
这些实现方式涵盖了从基础到进阶的PHP计算器开发,可根据需求选择适合的方案。





