空結合運算子()
Null coalescing 是 PHP 7 中引入的一個新運算子。如果設定了運算子而不是 NULL
,則此運算子返回其第一個運算元。否則它將返回其第二個運算元。
以下示例:
$name = $_POST['name'] ?? 'nobody';
相當於兩者:
if (isset($_POST['name'])) {
$name = $_POST['name'];
} else {
$name = 'nobody';
}
和:
$name = isset($_POST['name']) ? $_POST['name'] : 'nobody';
此運算子也可以連結(具有右關聯語義):
$name = $_GET['name'] ?? $_POST['name'] ?? 'nobody';
這相當於:
if (isset($_GET['name'])) {
$name = $_GET['name'];
} elseif (isset($_POST['name'])) {
$name = $_POST['name'];
} else {
$name = 'nobody';
}
注意:
在字串連線上使用合併運算子時,不要忘記使用括號 ()
$firstName = "John";
$lastName = "Doe";
echo $firstName ?? "Unknown" . " " . $lastName ?? "";
這將僅輸出 John
,如果其$ firstName 為 null 且$ lastName 為 Doe
,則輸出 Unknown Doe
。為了輸出 John Doe
,我們必須使用這樣的括號。
$firstName = "John";
$lastName = "Doe";
echo ($firstName ?? "Unknown") . " " . ($lastName ?? "");
這將僅輸出 John Doe
而不是 John
。