PHP 8 ใช้ตัวดำเนินการ nullsafe แทนเงื่อนไขการตรวจสอบค่า null การใช้ตัวดำเนินการ nullsafe เราสามารถใช้สายการเรียกได้ ขณะประเมินองค์ประกอบ หากองค์ประกอบลูกโซ่ล้มเหลว การดำเนินการของห่วงโซ่ทั้งหมดจะยกเลิกและประเมินเป็นโมฆะ
เมื่อโอเปอเรเตอร์ด้านซ้ายประเมินเป็นโมฆะ ห่วงโซ่การดำเนินการทั้งหมดจะหยุดและประเมินเป็นโมฆะ หากไม่ประเมินเป็นโมฆะ ก็จะทำงานเหมือนโอเปอเรเตอร์ปกติ
ตัวดำเนินการ nullsafe สามารถถูกโยงได้ และนิพจน์จะถูกลัดวงจรจากตัวดำเนินการ nullsafe ตัวแรกที่ตรงกับค่า null
$employee->getDepartment()?->getAddress()->format();
ไวยากรณ์ nullsafe เหมือนกับตัวดำเนินการการเข้าถึงเมธอด/คุณสมบัติ (→) เราใช้ "?→" สำหรับโอเปอเรเตอร์ที่ปลอดภัยเป็นโมฆะ
ไวยากรณ์:PHP 8 ตัวดำเนินการ Nullsafe
$foo?->bar?->baz;
ตัวอย่าง:PHP 8 Nullsafe Operator(?→)
<?php class Emp{ public function getAddress() {} } $emp = new Emp(); $dept = $emp?->getAddress()?->dept?->iso_code; print_r($dept); ?>
ผลลัพธ์
null