PHP NULL 合併運算符

PHP 7 新增加的 NULL 合併運算子(??)是用於執行isset()偵測的三元運算的捷徑。

NULL 合併運算子會判斷變數是否存在且值不為NULL,如果是,它就會傳回自身的值,否則傳回它的第二個運算元。

以前我們這樣寫三元運算子:

$site = isset($_GET['site']) ? $_GET['site'] : 'php中文网';

現在我們可以直接這樣寫:

$site = $_GET['site'] ?? 'php中文网';

實例

<?php
// 获取 $_GET['site'] 的值,如果不存在返回 'php中文网'
$site = $_GET['site'] ?? 'php中文网';

print($site);
echo "<br/>"; // PHP_EOL 为换行符


// 以上代码等价于
$site = isset($_GET['site']) ? $_GET['site'] : 'php中文网';

print($site);
echo "<br/>";
// ?? 链
$site = $_GET['site'] ?? $_POST['site'] ?? 'php中文网';

print($site);
?>

以上程式執行輸出結果為:

php中文网
php中文网
php中文网


繼續學習
||
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
// $_GET['site'] 'php'
$site = $_GET['site'] ?? 'php';
print($site);
echo "<br/>"; // PHP_EOL
//
$site = isset($_GET['site']) ? $_GET['site'] : 'php';
print($site);
echo "<br/>";
// ??
$site = $_GET['site'] ?? $_POST['site'] ?? 'php';
print($site);
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
图片放大关闭