Оператор объединения 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.

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

Быть «эквивалентным» не означает то же самое, что и.

Nigel Ren 17.05.2018 15:52

из документы: «В частности, этот оператор не выдает уведомления, если значение в левой части не существует, как и isset (). Это особенно полезно для ключей массива».

Kaddath 17.05.2018 15:55

Как говорится, это синтаксический сахар для общего случая использования тернарного оператора в сочетании с isset. Если это не то, что вы делаете, значит, это не тот оператор, который вам нужен. Справедливости ради, документы могли бы быть сформулированы немного лучше.

iainn 17.05.2018 15:55

Обратите внимание, что он называется «Оператор объединения Ноль», а не «Оператор ложного объединения».

Sammitch 17.05.2018 20:06
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
1 089
1

Ответы 1

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

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

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

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

Result :
string(3) "abc" 

Другие вопросы по теме