Всем привет. Сегодня мы познакомимся с интересным оператором который появился в php7, а именно оператором объединения null. Итак, поехали!
Допустим мы хотим проверить на существование параметр id в адресной строке и исходя из этого вернуть определенный результат.
$id = $_GET['id'] ?? 1;
Значение $_GET['id'] присваивается переменной $id только в том случае если оно не равно null, иначе будет присвоено значение 1.
То есть данный кусок кода можно представить в таком виде.
$id = isset($_GET['id']) ? $_GET['id'] : 1;
Чувствуете разницу не так ли? Более того с помощью данного оператора мы можем создавать целые цепочки проверок на null.
$referer = $_SESSION['referer'] ?? $_REQUEST['referer'] ?? $_SERVER['HTTP_REFERER'] ?? -1;
echo $referer;
Здесь мы поочередно проверяем наличие параметра referer в супер глобальных массивах до тех пор пока нам не будет возвращено значение отличительное от null(не определено).
Если параметр не будет найден в конце вернется 1.
Без использования оператора ?? нам пришлось бы написать такую конструкцию:
$referer = -1;
if(isset($_SESSION['referer'])){
$referer = $_SESSION['referer'];
}
if(isset($_REQUEST['referer'])){
$referer = $_REQUEST['referer'];
}
if(isset($_SERVER['referer'])){
$referer = $_SERVER['referer'];
}
echo $referer;
Здесь наглядно показано насколько можно упростить написание кода используя оператор объединения ??.
На этом данная статья подошла к концу. Если что то было непонятно, то оставляйте свои вопросы в комментариях или группе
вк.Я с вами прощаюсь. Желаю успехов и удачи! Пока.