我已经升级到PHP 7,并开始使用null合并运算符转换类似以下的内容
$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
,但我会收到通知:
注意:在test.php的第2行中未定义索引:id
$id = (int) ($GET['id'] ?? 0);
- Mark Baker