是否有可能在一个表达式中使用空合并运算符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']) ?? '';
有什么想法吗?
答案 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
)不同。