isset()在php5.6中工作但在php7.0中没有

时间:2017-11-14 11:32:54

标签: php php-7 php-5.6

我有一个代码库,我正在尝试迁移到7.0。

在代码中,我有类似的东西: isset($user['details']['phone_no'])其中$user是User的对象。这在php5.6中工作正常。在php7中它返回false。在执行var_dump($user['details']['phone_no'])时,它返回一个字符串。

从我改变代码时它工作正常:

$phone_no = isset($user['details']['phone_no']) ? $user['details']['phone_no'] : 'XXXXXXXXXX'; 

为:

$phone_no = $user->details->phone_no ?? 'XXXXXXXXXX';

然而,代码库太大而无法重构。