当前位置:首页 > PHP

php实现计算器

2026-02-13 17:46:58PHP

基础实现

使用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; ?>

安全增强

添加输入验证和过滤防止非法输入:

php实现计算器

$num1 = filter_input(INPUT_POST, 'num1', FILTER_VALIDATE_FLOAT);
$num2 = filter_input(INPUT_POST, 'num2', FILTER_VALIDATE_FLOAT);
if ($num1 === false || $num2 === false) {
    $result = "请输入有效数字";
}

扩展功能

支持更多运算符和连续计算:

php实现计算器

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; ?>

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

相关文章

基于php的设计与实现

基于php的设计与实现

PHP 设计与实现的关键要素 环境搭建与框架选择 PHP开发需配置服务器环境(如Apache/Nginx)、PHP版本(建议7.4+)及数据库(MySQL/MariaDB)。主流框架包括Laravel…

php搜索功能实现的

php搜索功能实现的

PHP 搜索功能实现方法 数据库搜索实现 使用 SQL 的 LIKE 语句进行模糊匹配,适用于小型网站和简单搜索需求。 $searchTerm = $_GET['search']; $query =…

php 实现下载

php 实现下载

PHP 实现文件下载的方法 使用 PHP 实现文件下载可以通过设置 HTTP 头信息,强制浏览器将文件作为附件下载而非直接打开。 基本下载实现 $file_path = 'path/to/your/…

php 实现面包屑导航

php 实现面包屑导航

实现面包屑导航的方法 面包屑导航(Breadcrumb Navigation)是一种常见的网站导航方式,用于显示用户当前页面的路径。以下是几种在 PHP 中实现面包屑导航的方法。 基于 URL 路径…

php实现验证码的识别

php实现验证码的识别

验证码识别的基本方法 验证码识别通常分为手动实现和第三方工具两种方式。手动实现需要图像处理和机器学习知识,而第三方工具则更快捷。 使用Tesseract OCR识别验证码 Tesseract是一个开…

php 实现长轮询

php 实现长轮询

PHP 实现长轮询的方法 长轮询(Long Polling)是一种服务器推送技术,客户端发送请求后,服务器保持连接开放直到有新数据或超时。以下是实现步骤: 基础实现代码 创建一个简单的长轮询 PHP…