运算符优先级
本课属于 Coddy PHP 学习旅程的“基础知识”单元。第 20 课,共 71 课。
当一个表达式包含多个运算符时,PHP 会遵循特定的顺序,称为运算符优先级。和数学一样,乘法和除法会先于加法和减法执行。
<?php
echo 5 + 3 * 2; // 输出:11,而不是 16
?>PHP 会先计算 3 × 2(得到 6),然后再加上 5。如果运算符的优先级相同,它就会从左到右计算:5 + 3 = 8,然后 8 × 2 = 16。但实际并不是这样。
下面是你学过的运算符从高到低的优先级:
| 优先级 | 运算符 |
| 最高 | **(乘方) |
| 高 | * / % |
| 低 | + - |
若要改变默认顺序,请使用括号。括号内的运算总是优先计算:
<?php
echo (5 + 3) * 2; // 输出:16
echo 2 ** 3 * 2; // 输出:16(8 * 2)
echo 2 ** (3 * 2); // 输出:64(2^6)
?>不确定时,可以使用括号来明确表达你的意图。这样能让代码更易读,也能避免意外结果。
挑战
简单从输入中读取三个数字:a、b 和 c。
计算并打印以下表达式的结果,使用括号确保先进行加法,再进行乘法:
(a + b) * c ** 2
这表示:先将 a 和 b 相加,然后将它们的和乘以 c 的 2 次方。
示例:
如果输入是 2、3 和 4,输出应为 80,因为:
- 首先,计算 2 + 3 = 5
- 然后,计算 4 ** 2 = 16
- 最后,计算 5 * 16 = 80
亲手试试
<?php
// 读取输入
$a = intval(fgets(STDIN));
$b = intval(fgets(STDIN));
$c = intval(fgets(STDIN));
// TODO:在下方编写代码,计算 (a + b) * c ** 2
// 输出结果
echo $result;
?>这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: PHP 在线编译器