首頁 > 後端開發 > php教程 > PHP 的 Nullsafe 運算子可以簡化巢狀屬性存取嗎?

PHP 的 Nullsafe 運算子可以簡化巢狀屬性存取嗎?

Barbara Streisand
發布: 2024-12-14 04:58:09
原創
300 人瀏覽過

Can PHP's Nullsafe Operator Simplify Nested Property Access?

PHP 中引入Nullsafe 運算子

Nullsafe 運算子(?->) 允許開發人員編寫安全存取物件屬性和方法而不需要顯式的空檢查。這簡化了程式碼並增強了可讀性,尤其是在複雜的物件層次結構中。

查詢

我們可以使用 nullsafe 運算子重寫以下語句嗎?

echo $data->getMyObject() != null ? $data->getMyObject()->getName() : '';
登入後複製

回答

來自從PHP 8 開始,我們可以將nullsafe 運算子與null 合併運算子(?) 結合使用來實現所需的行為。

echo $data->getMyObject()?->getName() ?? '';
登入後複製

? ->運算子在遇到 null 值時會中斷運算子鏈,有效地傳回 null 並終止表達式。檢查物件屬性或呼叫方法的運算子被視為鏈的一部分,包括:

  • 陣列存取([])、屬性存取(->)、nullsafe 屬性存取(?->) 、靜態屬性存取(::)、方法呼叫(->)、nullsafe 方法呼叫(?->)和靜態方法呼叫(::)

此外,如果鏈中的後續運算子不被視為鏈的一部分(例如,下面範例中的串聯運算符),它們將不會被短路:

$string = $data?->getObject()->getName() . " after";
登入後複製

在這種情況下,如果$data 為null,則代碼將導致:

$string = null . " after";
登入後複製

以上是PHP 的 Nullsafe 運算子可以簡化巢狀屬性存取嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板