使用空合并运算符回显转义输出



是否有可能在一个表达式中使用空合并运算符 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的值(,则将TRUEisset()(。

最新更新