Новинки в PHP7. Часть 3.
Всем привет! В этой статье мы рассмотрим, что такое оператор null-объединения в PHP7, зачем он нужен и как его использовать.
Данный оператор применяется для того, чтобы задать какое-то значение переменной и не использовать при этом функцию isset. Давайте рассмотрим пример.
if(isset($smth)) {
$variable = $smth;
} else {
$variable = 'default';
}
В этом случае мы задаем переменной значение, если это значение существует и не равно null, иначе же записываем туда строку по умолчанию. Достаточно много кода для такой простой операции, не кажется ли вам? Вот именно так подумали разработчики и создали оператор null-объединения, который позволит выполнить ту же задачу более лаконично.
$variable = $smth ?? 'default';
Как вы можете видеть в коде выше, данный оператор обозначается двумя знаками вопроса. Конечно же, мы можем делать больше условий:
$variable = $smth ?? $smth_2 ?? $object->smth ?? 'default';
В этом случае в переменную запишется первое значение, если оно существует и не равно null, иначе же второе, третье, и, если ничего не подошло, запишется строка по умолчанию.
Где это применять? На самом деле почти везде. В качестве примера можно привести получение параметра из GET-запроса. Ниже вы найдете код в старом и новом стилях и сможете сравнить, насколько теперь стало проще и быстрее писать проверки.
// старый стиль
$parameter = 'null';
if(isset($_GET['query'])) {
$parameter = $_GET['query'];
}
echo $parameter;
// новый стиль
$parameter = $_GET['query'] ?? 'null';
echo $parameter;
Итак, на этом все. Спасибо за внимание!
-
- Михаил Русаков
Комментарии (3):
Скоро код вообще в не понятные символы - абру кадабру превратится. Слово "if" значит "если", а такая запись не понятна - "??". Не понятно, где "if", а где "else" и где "elseif". Тупо! Одним словом. Я лично считаю - это не вариант. Ну даст чуть - чуть скорости, но она не заметна будет для глаза, какие то считанные мили секунды. Подумайте, эта короткая запись - "??" всё равно что писать в крупной программе вот такие переменные - "$a" в место "$name", "$b" в место - "$success", мол потому что коротко, а надо чтобы было понятно. Ни мне одному такие записи не нравятся.
Ответить
ИМХО, при постоянном использовании Ваша проблема исчезает, т.к. просто запомните, что означает эта запись.
Ответить
Исчезнет только тогда, когда будет смысл при написании, а не абра - кадабра. И не иначе.
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.