我們經常要寫類似於這種判斷程式碼
// 判斷是否存在變數
$a = isset($b) ? $b : $c;
// 判斷變數是否為空
$a = !empty($b) ? $b : $c;
PHP7有了新語法糖,進行簡化(PHP版本必須大於7)
// 判斷是否存在變數
$a = $b ?? $c; // 等同於 $a = isset($b) ? $b : $c;
// 判斷變數是否為空
$a = $b ?: $c; // 等同於 $a = !empty($b) ? $b : $c;
他們的區別在
- null合併運算子:?? 判斷變數不存在或為NULL
- null條件運算子:?: 則還會判斷變數是否為空
?? 還會判斷是否為NULL$a = []; print_r($a ?? '走了這邊'); // [] print_r($a ?: '走了這邊'); // '走了這邊'
$a = null; print_r($a ?? '走了這邊'); // 走了這邊
本作品採用《CC 協議》,轉載必須註明作者和本文連結