当前位置:首页 > PHP

php实现计算器

2026-01-28 19:36:31PHP

基本计算器实现

使用PHP创建一个简单的计算器可以通过HTML表单接收用户输入,PHP处理计算逻辑。以下是一个基础实现示例:

HTML表单部分 (calculator.html)

<form method="post" action="calculate.php">
    <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">计算</button>
</form>

PHP处理逻辑 (calculate.php)

<?php
$num1 = $_POST['num1'];
$num2 = $_POST['num2'];
$operator = $_POST['operator'];
$result = 0;

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;
    default:
        $result = '无效操作';
}

echo "结果: " . $result;
?>

增强版计算器功能

增加更多数学运算和错误处理:

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $num1 = floatval($_POST['num1']);
    $num2 = isset($_POST['num2']) ? floatval($_POST['num2']) : null;
    $operator = $_POST['operator'];

    try {
        switch ($operator) {
            case 'sqrt':
                if ($num1 < 0) throw new Exception('负数不能开平方');
                $result = sqrt($num1);
                break;
            case 'power':
                $result = pow($num1, $num2);
                break;
            case 'mod':
                $result = $num1 % $num2;
                break;
            // 包含基础运算...
            default:
                throw new Exception('无效操作');
        }
        echo json_encode(['success' => true, 'result' => $result]);
    } catch (Exception $e) {
        echo json_encode(['success' => false, 'error' => $e->getMessage()]);
    }
}
?>

面向对象实现

采用面向对象方式封装计算器逻辑:

class Calculator {
    public function calculate($num1, $num2, $operator) {
        if (!is_numeric($num1) || !is_numeric($num2)) {
            throw new InvalidArgumentException('必须输入数字');
        }

        switch ($operator) {
            case '+': return $num1 + $num2;
            case '-': return $num1 - $num2;
            case '*': return $num1 * $num2;
            case '/':
                if ($num2 == 0) throw new DivisionByZeroError('除数不能为零');
                return $num1 / $num2;
            default: throw new UnexpectedValueException('不支持的操作符');
        }
    }
}

// 使用示例
$calc = new Calculator();
try {
    echo $calc->calculate(10, 5, '/');
} catch (Exception $e) {
    echo '错误: ' . $e->getMessage();
}

安全注意事项

  1. 始终验证用户输入:

    if (!is_numeric($num1) || !is_numeric($num2)) {
     die('请输入有效数字');
    }
  2. 对于除法操作必须检查除数:

    if ($operator == 'divide' && $num2 == 0) {
     die('除数不能为零');
    }
  3. 考虑使用PHP过滤器:

    $num1 = filter_input(INPUT_POST, 'num1', FILTER_VALIDATE_FLOAT);

这些实现方式涵盖了从基础到进阶的PHP计算器开发,可根据实际需求选择适合的方案。

php实现计算器

标签: 计算器php
分享给朋友:

相关文章

php实现分页

php实现分页

PHP实现分页的基本方法 使用原生PHP实现分页功能需要结合数据库查询和HTML展示。以下是核心实现步骤: 数据库查询与分页逻辑 // 连接数据库 $conn = new mysqli('loca…

php实现打印功能

php实现打印功能

PHP 实现打印功能的方法 PHP 可以通过多种方式实现打印功能,具体取决于打印的目标(如打印机、PDF、网页等)和需求(如直接打印、生成打印预览等)。以下是几种常见的实现方式: 使用 JavaSc…

php实现文件下载

php实现文件下载

PHP实现文件下载的方法 通过PHP实现文件下载功能,可以采用多种方式,以下是几种常见的实现方法: 使用header()函数强制下载 设置HTTP头信息,强制浏览器下载文件而非直接打开:…

git php实现

git php实现

Git 与 PHP 的集成实现 使用 PHP 执行 Git 命令 通过 PHP 的 exec()、shell_exec() 或 passthru() 函数可以直接调用 Git 命令,适用于服务器端操作…

php验证码实现

php验证码实现

验证码实现方法 在PHP中实现验证码功能通常涉及生成随机字符串或数字,将其转换为图像,并通过会话(Session)进行验证。以下是几种常见的实现方式: 使用GD库生成图像验证码 GD库是PHP内置…

php购物车实现

php购物车实现

PHP购物车实现方法 使用PHP实现购物车功能可以通过多种方式完成,以下是几种常见的实现方法: Session存储购物车数据 利用PHP的$_SESSION超全局变量存储购物车数据是最简单的方法。…