Пустой оператор объединения с нулевым последним операндом

Работает нормально и не вызывает проблем

echo $formErrorBag[ 'email' ] ?? null

Но является ли это общепринятой практикой? Никогда не видел пример этого с null,

2

Решение

Это полностью законно и принято. Это довольно простой и элегантный способ избежать E_NOTICE если $formErrorBag не имеет 'email' ключ.

7

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

Нулевой оператор объединения объединяет значения с isset()так вот:

echo $formErrorBag['email'] ?? null;

Равно:

if(isset($formErrorBag['email'])){
echo $formErrorBag['email'];
} else {
echo null;
}

Я действительно не вижу в этом смысла, поскольку вы все еще выполняете функцию, ничего не делая буквально. Если вы делаете это, чтобы избежать поднятия E_NOTICE Вы можете просто выключить его error_reporting() поскольку ваш метод как бы ломает суть всего этого.

Он там, чтобы предупредить вас о возможной ошибке в вашем коде, не найдя методов для ее устранения.

error_reporting(error_reporting() ^ E_NOTICE); // turn notices off keep remaining flags intact.

echo $array['doesnotexist'];
echo $array['etc'];

error_reporting(error_reporting() | E_NOTICE); // turn it back on.
1

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