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

24K大白羊發表於2020-12-29

有了 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 協議》,轉載必須註明作者和本文連結

相關文章