Php 带强制转换的零合并算子

Php 带强制转换的零合并算子,php,php-7,null-coalescing-operator,Php,Php 7,Null Coalescing Operator,我已经升级到PHP7,并开始使用null coalesce操作符来转换如下内容 $email = isset($_SESSION['email']) ? $_SESSION['email'] : ''; 到 但如果我也在选演员的话,我想不出该怎么做。例如,用于旧语句的 $id = isset($_GET['id']) ? (int) $_GET['id'] : 0; 我会这样想 $id = (int) $_GET['id'] ?? 0; 应该可以工作,但从某种意义上说,如果未设置$\u G

我已经升级到PHP7,并开始使用null coalesce操作符来转换如下内容

$email = isset($_SESSION['email']) ? $_SESSION['email'] : '';

但如果我也在选演员的话,我想不出该怎么做。例如,用于旧语句的

$id = isset($_GET['id']) ? (int) $_GET['id'] : 0;
我会这样想

$id = (int) $_GET['id'] ?? 0;
应该可以工作,但从某种意义上说,如果未设置
$\u GET['id']
,则
$id
解析为
0
,但我收到了通知

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

(int)
强制转换优先于
??
运算符,因此使用括号:

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

关联性是您的问题:
$id=(int)($GET['id']??0)$id = (int) ($_GET['id'] ?? 0);