PHP8的一些新特性之 Nullsafe 操作符

有了 Nullsafe 操作符后,和 ?? 表达式一样具有魔法能力,可以大幅减少代码量,且在也不会出现因为 null 操作导致的错误了。这个操作符在其他语言中早就实现了,PHP8 终于也可以使用了,来进入正题,看看下面的代码是否高频率的出现在你的代码中:

// PHP7
$country =  null;
if ($session !== null) {
  $user = $session->user;
  if ($user !== null) {
    $address = $user->getAddress();

    if ($address !== null) {
      $country = $address->country;
    }
  }
}

那么在 PHP8 中,我们只需要一行代码即可完成

$country = $session?->user?->getAddress()?->country;

现在可以用新的 nullsafe 运算符链式调用,而不需要条件检查 null。 如果表达式中的一个元素失败了,整个表达式会中止并认定为结果为 Null。

快去优化你的代码结构吧

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 6

这个好,这个好,想起了以前被

 first()->toArray();

支配的恐惧

3年前 评论

@airy 集合可以用 ->isEmpty() 判空啊

3年前 评论

这语法看着头不疼吗

3年前 评论

@Achais 还真不头疼,JavaScript、C#、TypeScript、Swift等早就支持了,习惯就好。而且的确可以精简代码。

file

3年前 评论

我记得js里面有一个 ?. 的语法

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!