在PHP 8往日,即使封装的较多,咱们常常展示一种情景:一个因变量接收X东西,但又大概是null,此时我在运用X东西属性前,就须要对null举行确定,免得展示缺点。

在东西较多时,简单展示多层嵌套确定的情景,比方:

$country = null;

if ($session !== null) {

$user = $session->user;

if ($user !== null) {

$address = $user->getAddress();

if ($address !== null) {

$country = $address->country;

}

}

}

PHP 8 此后减少了一个新语法:?->,特殊一致于PHP7里引入的??。即是在取属性前,PHP会对东西举行确定,即使东西是null,那么就径直归来null了,不复取其属性:

$country = $session?->user?->getAddress()?->country;