Php Null оператор объединения - PullRequest
0 голосов
/ 17 мая 2018

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

Однако я не могу понять этот код:

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

, поскольку это эквивалентно (из php.net # null-coalescing )

isset(false) ? false : 'stackoverflow';

и, поскольку isset(false) генерирует fatal error.

Не могли бы вы мне кто-нибудь объяснить?

1 Ответ

0 голосов
/ 17 мая 2018

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

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

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

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

Result :
string(3) "abc" 
...