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

时间:2017-08-19 22:48:49

标签: php null-coalescing-operator

是否有可能在一个表达式中使用空合并运算符AND echo:

Dim p As Long

Sub Main()

    Debug.Print "Start Main"

    p = 1
    Call A

    Debug.Print "End Main"

End Sub

Sub A()

    Debug.Print "Start"

    If p = 1 Then
        p = 2
        Call A
    Else
        Debug.Print "End"
    End If

End Sub

作为

的简短形式
echo htmlspecialchars($_POST['email']) ?? '';

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

当参数未定义时,空合并运算符不会发出public $operators = [ '=', '<', '>', '<=', '>=', '<>', '!=', 'like', 'like binary', 'not like', 'between', 'ilike', '&', '|', '^', '<<', '>>', 'rlike', 'regexp', 'not regexp', '~', '~*', '!~', '!~*', 'similar to', 'not similar to', 'not ilike', '~~*', '!~~*', ];

所以你可以做E_NOTICE

请注意,空合并运算符应用于变量$email = htmlspecialchars($_POST['email'] ?? '');),应用于$_POST['email']的结果。

如果你想使用条件三元运算符(htmlspecialchars()),那么你必须在操作之前检查变量是否已设置。

?:

请注意,如果变量已设置,则if ( isset($_POST['email']) ) { $email = htmlspecialchars($_POST['email'] ?: ''); } 将为isset()(换句话说,已定义且具有值与TRUE)不同。