PHP 8 dùng toán tử nullsafe thay vì điều kiện kiểm tra null. Với nullsafe operator, có thể dùng chuỗi gọi (chain of calls). Khi đánh giá các phần tử, nếu một phần tử trong chuỗi thất bại, toàn bộ chuỗi thực thi sẽ dừng và trả về null.
Khi toán tử bên trái đánh giá thành null, toàn bộ chuỗi thực thi dừng và trả về null. Nếu không phải null, hành xử như toán tử bình thường.
Toán tử nullsafe có thể nối chuỗi, biểu thức sẽ bị short-circuit (ngắt mạch) từ toán tử nullsafe đầu tiên gặp null.
$employee->getDepartment()?->getAddress()->format();
Cú pháp nullsafe giống toán tử truy cập phương thức/thuộc tính (->). Dùng "?->" cho nullsafe operator.
Cú pháp: PHP 8 Nullsafe operator
$foo?->bar?->baz;
Ví dụ: PHP 8 Nullsafe Operator(?->)
<?php
class Emp {
public function getAddress() {}
}
$emp = new Emp();
$dept = $emp?->getAddress()?->dept?->iso_code;
print_r($dept);
?>
Kết quả
null