HOWTO · PHP

PHP 中的雙問號

本教程演示了 PHP 中雙問號的用法。

本頁內容

雙問號在 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