是否有可能在一个表达式中使用空合并运算符 AND echo,如下所示:
echo htmlspecialchars($_POST['email']) ?? '';
作为
if (isset($_POST['email'])) {
echo htmlspechars($_POST['email']);
}
有什么想法吗?
未定义参数时,null 合并运算符不会发出E_NOTICE
。
所以你可以做$email = htmlspecialchars($_POST['email'] ?? '');
请注意,空合并运算符应用于变量($_POST['email']
(,而不是htmlspecialchars()
的结果。
如果你想使用条件三元运算符(?:
(,那么你应该在操作之前检查变量是否设置好。
if ( isset($_POST['email']) ) {
$email = htmlspecialchars($_POST['email'] ?: '');
}
请注意,如果设置了变量(或者换句话说,它已定义并且具有不同于NULL
的值(,则将TRUE
isset()
(。