三元运算符适用于简单条件赋值,语法为condition ? value_if_true : value_if_false,可简化if-else结构;嵌套使用需谨慎以免降低可读性;php 7+的空合并运算符??更便捷地处理NULL或未定义变量,默认值设置更简洁;布尔比较可直接赋值无需三元;合理使用三元与??能提升代码紧凑性与效率。

三元运算符是PHP中一种简洁的条件判断写法,能有效减少代码行数,提升可读性(在合理使用的情况下)。它适用于简单的条件赋值或返回值场景,避免冗长的 if-else 结构。
基本语法:condition ? value_if_true : value_if_false
这是标准三元运算符的结构。如果条件成立,返回第一个值;否则返回第二个值。
例如:
$status = $userLoggedIn ? ‘已登录’ : ‘未登录’;
等价于:
立即学习“PHP免费学习笔记(深入)”;
if ($userLoggedIn) {
$status = ‘已登录’;
} else {
$status = ‘未登录’;
}
嵌套三元运算符要谨慎
虽然可以嵌套使用,但容易降低可读性。比如:
$result = $score > 90 ? ‘优秀’ : ($score > 70 ? ‘良好’ : ‘及格’);
这种写法虽然紧凑,但建议只用于逻辑简单的情况。复杂判断仍推荐使用 if-elseif 结构。
利用空合并运算符 ?? 简化默认值设置
PHP 7+ 引入了空合并运算符,是三元运算符的进一步简化,特别适合处理变量是否存在或为 null 的情况。
以前写法:
$name = isset($_GET[‘name’]) ? $_GET[‘name’] : ‘游客’;
现在更简洁:
$name = $_GET[‘name’] ?? ‘游客’;
甚至支持链式操作:
$value = $Array[‘key1’][‘key2’] ?? $default;
结合布尔值直接赋值
当只需要判断真假并赋对应值时,三元运算符非常直观。
比如:
$isAdult = $age >= 18 ? true : false;
其实可以更简:
$isAdult = $age >= 18;
因为比较表达式本身就会返回布尔值,无需三元操作。
总结:
三元运算符适合简单条件判断,能让代码更紧凑。但要注意别过度嵌套,影响维护。配合空合并运算符 ?? 使用,处理默认值和缺失参数会更高效。合理使用,才能真正达到简化代码的目的。
基本上就这些,用得好是利器,用多了可能变“代码迷宫”。


