使用空合并运算符回显转义输出
Using null coalescing operator to echo an escaped output
是否可以像这样在一个表达式中使用空合并运算符 AND echo:
echo htmlspecialchars($_POST['email']) ?? '';
作为
的缩写形式
if (isset($_POST['email'])) {
echo htmlspechars($_POST['email']);
}
有什么想法吗?
当未定义参数时,空合并运算符不会发出 E_NOTICE
。
所以你可以$email = htmlspecialchars($_POST['email'] ?? '');
请注意,空合并运算符应用于 变量 ($_POST['email']
) 并且 not 应用于 htmlspecialchars()
.
如果您想使用条件三元运算符 (?:
),那么您应该在操作之前检查变量是否已设置。
if ( isset($_POST['email']) ) {
$email = htmlspecialchars($_POST['email'] ?: '');
}
请注意,如果变量 已设置 ,则 isset()
将是 TRUE
(或者,换句话说,它已被 定义 并且值不同于 NULL
).
是否可以像这样在一个表达式中使用空合并运算符 AND echo:
echo htmlspecialchars($_POST['email']) ?? '';
作为
的缩写形式if (isset($_POST['email'])) {
echo htmlspechars($_POST['email']);
}
有什么想法吗?
当未定义参数时,空合并运算符不会发出 E_NOTICE
。
所以你可以$email = htmlspecialchars($_POST['email'] ?? '');
请注意,空合并运算符应用于 变量 ($_POST['email']
) 并且 not 应用于 htmlspecialchars()
.
如果您想使用条件三元运算符 (?:
),那么您应该在操作之前检查变量是否已设置。
if ( isset($_POST['email']) ) {
$email = htmlspecialchars($_POST['email'] ?: '');
}
请注意,如果变量 已设置 ,则 isset()
将是 TRUE
(或者,换句话说,它已被 定义 并且值不同于 NULL
).