php 7.1 — Php Null оператор объединения

Я пытаюсь понять, как null coalescing operator действительно работает. Итак, я протестировал много примеров после прочтения документации в php.net и некоторые посты на stackoverflow.

Тем не менее, я не могу понять этот код:

<?php
$x = false ?? 'stackoverflow';
var_dump($x); // bool(false)

так как это эквивалентно (из php.net # нуль-коалесцирующий)

isset(false) ? false : 'stackoverflow';

и с тех пор isset(false) генерирует fatal error,

Может ли кто-нибудь объяснить мне?

1

Решение

Нулевой оператор объединения возвращает свой первый операнд, если он существует и не равен NULL;

В противном случае он возвращает свой второй операнд.

В вашем случае первый операнд является ложным, поэтому он присваивается переменной. Например, если вы инициализируете null для первого операнда, то он назначит значение второго операнда, как показано.

 $a = null;
$x = $a ?? 'abc';
var_dump($x);

Result :
string(3) "abc"
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]