php - 带类型转换的空合并运算符

标签 php php-7 null-coalescing-operator

我已经升级到 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/

相关文章:

c# - 如何将 collasce null 运算符与 DbNull.Value 一起使用?

php - 如何在 Laravel 5.4 中的 firstOrCreate 中使用 where

php解析汇率提要XML

php - 存储数据用mysql好还是文件好?

php - 如何在 PHP 7 中启用 MySQLi 扩展?

c# - 可以在 C# 中重载 `??` 运算符吗?

php - 使用 PHP/MySQL 同时将数据插入多个表

phpmyadmin - PHP 7 与 phpmyadmin 给出了很多弃用通知

json - PHP7、JSON 和 Zend(解码失败 : syntax error)

c# - 空合并运算符