Я обновился до PHP 7 и начал использовать оператор null coalesce для преобразования таких вещей, как
$email = isset($_SESSION['email']) ? $_SESSION['email'] : '';
в
$email = $_SESSION['email'] ?? '';
но я не могу понять, как это сделать, если я тоже кастую. Например, для старого заявления
$id = isset($_GET['id']) ? (int) $_GET['id'] : 0;
Я бы подумал что-то вроде
$id = (int) $_GET['id'] ?? 0;
должно работать, но это не кажется в том смысле, что, если $_GET['id']
не установлен, $id
решает в 0
но я получаю уведомление
Примечание: неопределенный индекс: id в test.php в строке 2
(int)
бросок получает приоритет над ??
оператор, поэтому используйте скобки:
$id = (int) ($_GET['id'] ?? 0);
Других решений пока нет …