Нулевой оператор слияния с отливкой

Я обновился до 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

4

Решение

(int) бросок получает приоритет над ?? оператор, поэтому используйте скобки:

$id = (int) ($_GET['id'] ?? 0);
11

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]