我已经升级到 PHP 7 并开始使用 null coalesce operator 来转换类似的东西
$email = isset($_SESSION['email']) ? $_SESSION['email'] : '';
到
$email = $_SESSION['email'] ?? '';
但如果我也在转换,我不知道该怎么做。例如,for 旧语句
$id = isset($_GET['id']) ? (int) $_GET['id'] : 0;
我会这样想
$id = (int) $_GET['id'] ?? 0;
应该有效,但从某种意义上说,如果未设置 $_GET['id']
,$id
将解析为 0
但我收到了通知
Notice: Undefined index: id in test.php on line 2
最佳答案
(int)
转换优先于 ??
运算符,因此使用方括号:
$id = (int) ($_GET['id'] ?? 0);
关于php - 带类型转换的空合并运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34967056/