Skip to content

第 5 章:运算符与表达式

5.1 算术运算符(+ - * / % ++ --)

基本算术运算符

运算符描述示例结果
+加法$a + $b$a 与 $b 的和
-减法$a - $b$a 与 $b 的差
*乘法$a * $b$a 与 $b 的积
/除法$a / $b$a 与 $b 的商
%取模$a % $b$a 与 $b 的余数
++自增++$a$a++$a 加 1
--自减--$a$a--$a 减 1

示例代码

php
<?php
$a = 10;
$b = 3;

echo "$a + $b = " . ($a + $b) . '<br>'; // 13
echo "$a - $b = " . ($a - $b) . '<br>'; // 7
echo "$a * $b = " . ($a * $b) . '<br>'; // 30
echo "$a / $b = " . ($a / $b) . '<br>'; // 3.333...
echo "$a % $b = " . ($a % $b) . '<br>'; // 1

// 自增自减
$c = 5;
echo "初始值: $c<br>";
echo "++$c: " . (++$c) . '<br>'; // 先加 1 再返回值,结果 6
echo "$c++: " . ($c++) . '<br>'; // 先返回值再加 1,结果 6,执行后 $c=7
echo "最终值: $c<br>"; // 7

$d = 5;
echo "初始值: $d<br>";
echo "--$d: " . (--$d) . '<br>'; // 先减 1 再返回值,结果 4
echo "$d--: " . ($d--) . '<br>'; // 先返回值再减 1,结果 4,执行后 $d=3
echo "最终值: $d<br>"; // 3
?>

5.2 赋值运算符(= += -= 等)

赋值运算符

运算符描述示例等效于
=基本赋值$a = $b$a = $b
+=加法赋值$a += $b$a = $a + $b
-=减法赋值$a -= $b$a = $a - $b
*=乘法赋值$a *= $b$a = $a * $b
/=除法赋值$a /= $b$a = $a / $b
%=取模赋值$a %= $b$a = $a % $b
.=字符串连接赋值$a .= $b$a = $a . $b

示例代码

php
<?php
$a = 10;

echo "初始值: $a<br>";

$a += 5; // $a = $a + 5
echo "$a += 5: $a<br>"; // 15

$a -= 3; // $a = $a - 3
echo "$a -= 3: $a<br>"; // 12

$a *= 2; // $a = $a * 2
echo "$a *= 2: $a<br>"; // 24

$a /= 4; // $a = $a / 4
echo "$a /= 4: $a<br>"; // 6

$a %= 5; // $a = $a % 5
echo "$a %= 5: $a<br>"; // 1

// 字符串连接赋值
$str = "Hello";
$str .= " World";
echo "字符串连接: $str<br>"; // Hello World
?>

5.3 比较运算符(== != > < 等)

比较运算符

运算符描述示例结果
==等于$a == $b如果 $a 等于 $b,返回 true
===全等$a === $b如果 $a 等于 $b 且类型相同,返回 true
!=不等于$a != $b如果 $a 不等于 $b,返回 true
!==不全等$a !== $b如果 $a 不等于 $b 或类型不同,返回 true
>大于$a > $b如果 $a 大于 $b,返回 true
<小于$a < $b如果 $a 小于 $b,返回 true
>=大于等于$a >= $b如果 $a 大于或等于 $b,返回 true
<=小于等于$a <= $b如果 $a 小于或等于 $b,返回 true

示例代码

php
<?php
$a = 10;
$b = "10";
$c = 15;

echo "$a == $b: " . ($a == $b ? 'true' : 'false') . '<br>'; // true(值相等)
echo "$a === $b: " . ($a === $b ? 'true' : 'false') . '<br>'; // false(类型不同)
echo "$a != $c: " . ($a != $c ? 'true' : 'false') . '<br>'; // true
echo "$a !== $b: " . ($a !== $b ? 'true' : 'false') . '<br>'; // true
echo "$a > $c: " . ($a > $c ? 'true' : 'false') . '<br>'; // false
echo "$a < $c: " . ($a < $c ? 'true' : 'false') . '<br>'; // true
echo "$a >= $b: " . ($a >= $b ? 'true' : 'false') . '<br>'; // true
echo "$a <= $c: " . ($a <= $c ? 'true' : 'false') . '<br>'; // true
?>

5.4 逻辑运算符(&& || !)

逻辑运算符

运算符描述示例结果
&&逻辑与$a && $b如果 $a 和 $b 都为 true,返回 true
``逻辑或
!逻辑非!$a如果 $a 为 false,返回 true

示例代码

php
<?php
$a = true;
$b = false;
$c = true;

echo "$a && $b: " . ($a && $b ? 'true' : 'false') . '<br>'; // false
echo "$a && $c: " . ($a && $c ? 'true' : 'false') . '<br>'; // true
echo "$a || $b: " . ($a || $b ? 'true' : 'false') . '<br>'; // true
echo "$b || $b: " . ($b || $b ? 'true' : 'false') . '<br>'; // false
echo "!$a: " . (!$a ? 'true' : 'false') . '<br>'; // false
echo "!$b: " . (!$b ? 'true' : 'false') . '<br>'; // true
?>

5.5 三元运算符、合并运算符

三元运算符

php
<?php
// 语法:条件 ? 值1 : 值2
$age = 18;
$message = $age >= 18 ? "成年人" : "未成年人";
echo $message; // 成年人
?>

合并运算符

php
<?php
// 语法:$变量 ?? 默认值
$name = $_GET['name'] ?? "匿名用户";
echo $name; // 如果 $_GET['name'] 存在则输出,否则输出 "匿名用户"

// 嵌套使用
$user = $user ?? $session_user ?? $default_user;
?>

5.6 运算符优先级

运算符优先级从高到低排列:

  1. () - 括号
  2. ++, -- - 自增自减
  3. !, ~ - 逻辑非、位取反
  4. *, /, % - 乘、除、取模
  5. +, - - 加、减
  6. . - 字符串连接
  7. <, <=, >, >= - 比较运算符
  8. ==, !=, ===, !== - 相等性运算符
  9. & - 位与
  10. ^ - 位异或
  11. | - 位或
  12. && - 逻辑与
  13. || - 逻辑或
  14. ?: - 三元运算符
  15. =, +=, -=, *=, /=, %=, .= - 赋值运算符
  16. and, or, xor - 逻辑运算符

示例代码

php
<?php
// 优先级示例
$result = 1 + 2 * 3; // 先乘后加,结果 7
$result = (1 + 2) * 3; // 先加后乘,结果 9

// 逻辑运算符优先级
$a = true || false && false; // && 优先级高于 ||,相当于 true || (false && false),结果 true
$b = (true || false) && false; // 括号改变优先级,结果 false
?>

5.7 实操:简单计算器

创建 calculator.php 文件

php
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>简单计算器</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 20px;
        }
        .calculator {
            width: 300px;
            padding: 20px;
            border: 1px solid #ccc;
            border-radius: 5px;
            background-color: #f9f9f9;
        }
        input {
            width: 100%;
            padding: 10px;
            margin: 5px 0;
            box-sizing: border-box;
        }
        button {
            width: 48%;
            padding: 10px;
            margin: 5px 1%;
            background-color: #4CAF50;
            color: white;
            border: none;
            border-radius: 3px;
            cursor: pointer;
        }
        button:hover {
            background-color: #45a049;
        }
        .result {
            margin-top: 10px;
            padding: 10px;
            background-color: #e8f5e8;
            border-radius: 3px;
        }
    </style>
</head>
<body>
    <h1>简单计算器</h1>
    <div class="calculator">
        <form method="post">
            <input type="number" name="num1" placeholder="第一个数" required><br>
            <input type="number" name="num2" placeholder="第二个数" required><br>
            <select name="operation" style="width: 100%; padding: 10px; margin: 5px 0;">
                <option value="add">加法 (+)</option>
                <option value="subtract">减法 (-)</option>
                <option value="multiply">乘法 (*)</option>
                <option value="divide">除法 (/)</option>
                <option value="modulus">取模 (%)</option>
            </select><br>
            <button type="submit" name="calculate">计算</button>
        </form>
        
        <?php
        if (isset($_POST['calculate'])) {
            $num1 = $_POST['num1'];
            $num2 = $_POST['num2'];
            $operation = $_POST['operation'];
            $result = 0;
            
            switch ($operation) {
                case 'add':
                    $result = $num1 + $num2;
                    break;
                case 'subtract':
                    $result = $num1 - $num2;
                    break;
                case 'multiply':
                    $result = $num1 * $num2;
                    break;
                case 'divide':
                    if ($num2 != 0) {
                        $result = $num1 / $num2;
                    } else {
                        $result = "错误:除数不能为零";
                    }
                    break;
                case 'modulus':
                    if ($num2 != 0) {
                        $result = $num1 % $num2;
                    } else {
                        $result = "错误:除数不能为零";
                    }
                    break;
            }
            
            echo '<div class="result">';
            echo "结果:$result";
            echo '</div>';
        }
        ?>
    </div>
</body>
</html>

访问页面

  1. 将文件保存到网站根目录
  2. 打开浏览器,访问 http://localhost/calculator.php
  3. 输入两个数字,选择运算类型,点击计算按钮查看结果

小结

通过本章的学习,你掌握了 PHP 的各种运算符,包括算术运算符、赋值运算符、比较运算符、逻辑运算符、三元运算符和合并运算符。你还了解了运算符的优先级,并通过简单计算器的实战案例巩固了所学知识。这些运算符是 PHP 编程的基础,在后续的学习中会经常用到。

© 2026 编程马·菜鸟教程 版权所有