PHP 中引入Nullsafe 運算子
Nullsafe 運算子(?->) 允許開發人員編寫安全存取物件屬性和方法而不需要顯式的空檢查。這簡化了程式碼並增強了可讀性,尤其是在複雜的物件層次結構中。
查詢
我們可以使用 nullsafe 運算子重寫以下語句嗎?
echo $data->getMyObject() != null ? $data->getMyObject()->getName() : '';
回答
來自從PHP 8 開始,我們可以將nullsafe 運算子與null 合併運算子(?) 結合使用來實現所需的行為。
解
echo $data->getMyObject()?->getName() ?? '';
? ->運算子在遇到 null 值時會中斷運算子鏈,有效地傳回 null 並終止表達式。檢查物件屬性或呼叫方法的運算子被視為鏈的一部分,包括:
此外,如果鏈中的後續運算子不被視為鏈的一部分(例如,下面範例中的串聯運算符),它們將不會被短路:
$string = $data?->getObject()->getName() . " after";
在這種情況下,如果$data 為null,則代碼將導致:
$string = null . " after";
以上是PHP 的 Nullsafe 運算子可以簡化巢狀屬性存取嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!