PHP 中的Nullsafe 運算子:實作條件物件導覽
在PHP 中,存取物件屬性和呼叫方法可能會導致空指針異常,如果該物件為空或沒有請求的成員。為了解決這個問題,PHP 8 中引入的 nullsafe 運算子 (?-) 可以安全地導航物件屬性和方法。
考慮以下語句:
echo $data->getMyObject() != null ? $data->getMyObject()->getName() : '';
此語句檢查是否$data 物件具有 getMyObject() 屬性,如果它不為 null。如果該屬性存在且不為 null,它將繼續存取該物件內的 getName() 屬性。但是,如果該屬性不存在或為 null,則該語句將不會繼續執行。
使用nullsafe 運算符,我們可以將語句重寫為:
echo $data->getMyObject()?->getName();
在此語句中,如果$data 為null 或不具有getMyObject() 屬性,則運算符鏈終止,並傳回null。這使我們能夠優雅地處理缺少的屬性或方法調用,而不會出現異常。
nullsafe 運算子與下列存取物件屬性和方法的運算子一起使用:
例如程式碼下面:
$string = $data?->getObject()->getName() . " after";
相當於:
$string = (isset($data) && $data !== null) ? $data->getObject()->getName() . " after" : null;
如果$data 是null.
透過使用nullsafe 運算符,我們可以編寫更乾淨、更簡潔的程式碼,同時確保不出現空指標異常。
以上是PHP 的 Nullsafe 運算子 (?-) 如何防止空指標異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!