PHP «??» — null coalescing operator, null-коалесцентный оператор (Оператор объединения с null)
Был добавлен оператор объединения с null (??
), являющийся синтаксическим сахаром для достаточно распространённого действия, когда совместно используются тернарный оператор и функция isset(). Он возвращает первый операнд, если он задан и не равен null
, а в обратном случае возвращает второй операнд.
1 2 3 4 5 6 7 8 9 10 |
// Извлекаем значение $_GET['user'], а если оно не задано, // то возвращаем 'nobody' $username = $_GET['user'] ?? 'nobody'; // Это идентично следующему коду: $username = isset($_GET['user']) ? $_GET['user'] : 'nobody'; // Данный оператор можно использовать в цепочке. // В этом примере мы сперва проверяем, задан ли $_GET['user'], если нет, // то проверяем $_POST['user'], и если он тоже не задан, то присваеваем 'nobody'. $username = $_GET['user'] ?? $_POST['user'] ?? 'nobody'; |