PHP的三元運算與Ternary Operator與Null coalescing operator

PHP有提供(?:)三元運算,可以讓簡單的if...else條件做更精簡的判斷

$value = ($boolean) ? 't' : 'f';
 
//上例等同於
 
if ($boolean) {
    $value = 't';
else {
    $value = 'f';
}


在PHP5.3版之後,推出了?:運算,能更精簡判斷變數為空的情況

$value = $data ?: $default;

//上例等同於

if (!empty($data)) {
    $value = $data;
else {
    $value = $default;
}

 

在PHP7.0版之後,又推出了??運算,補足?:運算在變數尚未宣告時的情況

$value = $data ?? $default;

//上例等同於

if (isset($data)) {
    $value = $data;
else {
    $value = $default;
}

 

 

參考文章:

PHP ?: 和 ?? 運算子差異