Новое в PHP 7: оператор объединения со значением NULL
Не слишком броское имя для оператора, но раз уж php 7 принес нам удобный оператор объединения со значением NULL (англ. null coalesce operator), покажем пример.
У php 5 уже есть тернарный оператор, который проверяет выражение и потом возвращает второй элемент, если оно истинно и третий если ложно:
echo $count ? $count : 10; // выводит 10
Также есть сокращенный вариант, когда можно пропустить второй элемент, если он равен первому:
echo $count ?: 10; // также выводит 10
У php 7 мы дополнительно получаем ?? оператор, который удобно использовать вместо цепочки условий. Читая слева направо, возвратится первое существующее не null значение.
// $a не инициализирована
$b = 16;
echo $a ?? 2; // выводит 2
echo $a ?? $b ?? 7; // выводит 16
Эта конструкция удобна для задания приоритета одному или нескольким значениям, приходящих от пользователя, передаче конфигурации и т.д., и делает безопасный фоллбек на дефолтное значение. Это маленькая фича, которую я обязательно буду использовать, как только мои приложения обновятся до php 7.