2023-08-05 23:17:52
PHP 的空合并运算符 (??) 是一种简洁的语法,用于在变量为 null 时提供默认值。其核心特性是短路求值,即仅当左侧表达式为 null 时,才会计算右侧表达式。理解其优先级和短路行为对编写高效、可读的代码至关重要。
1. 短路求值特性当 $a 为 null 时,右侧 1 / 0 被计算,结果为 INF(无穷大)。
当 $b 非 null 时,右侧 1 / 0 完全跳过,直接输出 $b 的值。
此处 $a ?? 1 先计算,结果为 1,再除以 2,输出 0.5。若意图是 $a ?? (1 / 2),则结果错误。
若 $x 为 null,右侧 $y / 0 被计算,抛出警告并返回 INF。
若 $x 非 null,右侧完全跳过,无错误。
PHP 的空合并运算符 (??) 通过短路求值特性,提供了一种简洁处理 null 值的方式。其优先级虽低于多数运算符,但通过显式使用括号可避免歧义。掌握 ?? 的行为和最佳实践,能显著提升代码的健壮性和可读性,尤其适用于需要默认值或安全访问的场景。