Appearance
第 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 运算符优先级
运算符优先级从高到低排列:
()- 括号++,--- 自增自减!,~- 逻辑非、位取反*,/,%- 乘、除、取模+,-- 加、减.- 字符串连接<,<=,>,>=- 比较运算符==,!=,===,!==- 相等性运算符&- 位与^- 位异或|- 位或&&- 逻辑与||- 逻辑或?:- 三元运算符=,+=,-=,*=,/=,%=,.=- 赋值运算符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>访问页面
- 将文件保存到网站根目录
- 打开浏览器,访问
http://localhost/calculator.php - 输入两个数字,选择运算类型,点击计算按钮查看结果
小结
通过本章的学习,你掌握了 PHP 的各种运算符,包括算术运算符、赋值运算符、比较运算符、逻辑运算符、三元运算符和合并运算符。你还了解了运算符的优先级,并通过简单计算器的实战案例巩固了所学知识。这些运算符是 PHP 编程的基础,在后续的学习中会经常用到。
