双问号在 PHP 中称为 Null Coalescing
运算符。它是在 PHP7 中引入的。
双问号返回操作数的值,即 not Null
。
它从左到右检查操作数并返回第一个 non-Null
值。
如果需要结合使用三元,可以使用 Null Coalescing
运算符;在 PHP7 之前,我们使用 PHP 内置函数 isset()
和 ?:
而不是 ??
。
[在 PHP 中使用双问号作为 Null Coalescing
运算符]
<?php $Temp = null; $Demo = $Temp ?? 'Nothing'; echo $Demo."<br>"; $Temp = "Test Double Question Mark"; $Demo = $Temp ?? 'something'; echo $Demo; ?>
上面的代码将首先打印 nothing
,因为 $Demo
的值为空,然后它打印字符串 Test Double Question Mark
,因为第一个操作数是 not null
。
输出:
Nothing Test Double Question Mark
[在 PHP 中的表单值上使用双问号
我们可以在表单值上使用 Null Coalescing
运算符,因此如果没有插入任何值,它可以打印其他内容。参见示例:
<!DOCTYPE HTML> <html> <body> <form action="test.php" method="post"> Test Value 1: <input type="text" name="test1"><br> Test Value 2: <input type="text" name="test2"><br> <input type="submit"> </form> </body> </html>
此 HTML 代码将要求你输入值,这些值将打印在下面给出的 test.php
上。
<?php echo $_POST["test1"] ?? $_POST["test2"] ?? "Please enter a test value"; ?>
该代码将打印它从表单中获取的第一个非 Null 值,如果它没有得到任何值,它将打印输出:
Please enter a test value