Null合并算子与铸造

wog*_*and 4 php null-coalescing-operator php-7

我升级到PHP 7并开始使用null coalesce运算符来转换像

$email = isset($_SESSION['email']) ? $_SESSION['email'] : '';
Run Code Online (Sandbox Code Playgroud)

$email = $_SESSION['email'] ?? '';
Run Code Online (Sandbox Code Playgroud)

但如果我也在施法,我无法弄清楚如何做到这一点.例如,旧的陈述

$id = isset($_GET['id']) ? (int) $_GET['id'] : 0;
Run Code Online (Sandbox Code Playgroud)

我会想到像

$id = (int) $_GET['id'] ?? 0;
Run Code Online (Sandbox Code Playgroud)

应该工作,但它似乎没有在某种意义上,如果$_GET['id']没有设置,$id解决,0但我收到通知

注意:未定义的索引:第2行的test.php中的id

tri*_*cot 12

(int)投得到优先于??运营商,所以使用括号:

$id = (int) ($_GET['id'] ?? 0);
Run Code Online (Sandbox Code Playgroud)