PHP null 合并运算符
像素鱼丸
10-11
410

在 PHP 中,null 合并运算符(?? 是一个非常有用的运算符,用于简化对变量是否为 null 的判断。它在 PHP 7 中引入。


语法

$a = $b ?? $c;

这等价于:

$a = isset($b) ? $b : $c;

也就是说:

  • 如果 $b 存在且不为 null,则 $a 被赋值为 $b
  • 否则,$a 被赋值为 $c

示例

$name = $_GET['name'] ?? 'Guest';
echo "Hello, $name";

如果用户没有提供 name 参数(即 $_GET['name']null),那么 $name 就会是 'Guest'


与 isset() 的区别

  • isset($var):检查变量是否存在且不为 null
  • ?? 运算符:直接检查变量是否为 null 或未定义,并返回默认值。

更多示例

$username = $_POST['username'] ?? 'anonymous';
$age = $user['age'] ?? 0;
$role = $config['role'] ?? 'user';

这些代码都比使用 isset() 和三元运算符更简洁。


注意事项

  • ?? 不会检查变量是否存在,只检查是否为 null
  • 如果变量未定义(如 $var 不存在),?? 会返回右边的值。
  • 所以它比 isset() 更宽松。

与 ?:(三元运算符)对比

$a = isset($b) ? $b : $c;
$a = $b ?? $c;

两者效果相同,但 ?? 更简洁。


总结

特性 ?? 运算符 isset() + ?:
是否检查变量存在 不检查,只检查是否为 null 检查变量是否存在且非 null
语法 简洁 较长
适用场景 简单的默认值赋值 更复杂的条件判断

如果你有具体使用场景或代码片段,我可以帮你优化或解释!php

收藏 0
打赏
Woocomerce 模板开发基础
上一篇
Mighty 企业主题
下一篇

发表评论

注册不是必须的

像素鱼丸
像素鱼丸
161 文章
3 评论
4 喜欢
最新文章

Mirage 主题 v3.12.0 发布

Mirage 主题 v3.12.0 发布 https://github.com/vthemecn/mirage/releases/tag/v3.12.0 https://gitee.com/vthemecn/mirage/releases/tag/v3.12.0 更新内容: feat 可设置用户将无法通过 wp-login.php 进行注册或重置密码 feat 评论层级根据系统设置,最多支持3级, […]

Mirage 主题 v3.11.0 发布

Mirage 主题 v3.11.0 发布 https://github.com/vthemecn/mirage/releases/tag/v3.11.0 https://gitee.com/vthemecn/mirage/releases/tag/v3.11.0 这个版本优化了多个地方,并且屏蔽了 /wp-json/batch/v1,防止了 2026年7月被披露了极其严重的 WordPress 高 […]

VooShop 商城主题

主题简介 Vooshop 是一个简单精美的 WordPress 主题,支持自适应、暗黑模式、多语言等功能,可以用于企业、团体、自由职业者或更广泛的主页。 Vooshop:回归 WooCommerce 的纯粹与极速 零冗余代码,零多余功能。一个完全依赖 WooCommerce 原生能力的轻量级主题。 Vooshop 不做 WooCommerce 做不到的事,我们只负责让它跑得更快。 市面上的主题总试 […]

XZhan 主题

主题简介 XZhan 主题(中文名称:小站主题)是一款 WordPress 企业主题,支持自适应、暗黑模式等功能,可快速构建高质量的企业网站。   主题特色 支持白天与暗黑模式 自适应设计,兼容多种主流浏览器 自定义主色调 LOGO扫光动画 自定义SMTP支持 内置SEO功能 文章支持点赞、分享和海报生成 丰富的小工具 侧边栏粘性滚动 简介的主题设置面板 主题设置可导入和备份 多级子菜单 […]
Generating...
扫描二维码
扫描二维码