<?php练功房

第 1 章 · 入门 · 第 1.4 课

运算符

约 12 分钟

算术和赋值

+ - * / 是加减乘除,% 取余数,** 是乘方。注意 / 的结果可能是小数,想要整数商用 intdiv()。

$x += 3 是 $x = $x + 3 的简写,同理还有 -=、*=、.=。$x++ 让 $x 加 1。

比较:== 和 ===

这是 PHP 里最重要的区别之一:

  • == 宽松比较:先把两边转换成同一类型再比,5 == "5" 是 true。
  • === 严格比较:类型和值都必须相同,5 === "5" 是 false。

默认用 ===,能避开很多奇怪的 bug。不等于同理,!= 宽松、!== 严格。

<=> 叫“太空船运算符”,左边小返回 -1,相等返回 0,左边大返回 1,排序时很有用。

逻辑运算、三元和 ??

  • && 并且、|| 或者、! 取反。
  • 三元运算符 条件 ? 值1 : 值2:条件成立取值 1,否则取值 2。
  • 空合并 ??:$a ?? "默认" 表示如果 $a 不存在或是 null,就用“默认”。读取可能不存在的数据时特别常用。

下面用到的 if 下一课会细讲,先看个大概。

选择题

var_dump("1" === 1); 输出什么?

选择题

下面代码输出什么?

<?php
$x = null;
echo $x ?? "默认";

练习 1

计算 BMI

BMI = 体重(千克)÷ 身高(米)的平方。用给定的 $weight 和 $height 计算 BMI,四舍五入保留 1 位小数,输出:

BMI: 22.9

练习 2

判断闰年

闰年的规则:能被 4 整除但不能被 100 整除,或者能被 400 整除。

写一个表达式判断 $year 是不是闰年,把结果(true 或 false)存进 $isLeap。2024 年应该输出 bool(true)。检查时会把年份换成 1900、2000、2023 再运行。