在 PHP 5.3 可以透過 ?:
運算子簡單的判斷並賦值
$foo = $bar ?: $baz;
上面的運算式等同:
$foo = $bar ? $bar : $baz;
但是在沒有宣告變數之前仍然會出現錯誤訊息。而 PHP 7.0 開始支援兩個問號 (??
) 判斷並賦值,而且不用事先使用 isset()
判斷變數是否存在:
$username = $_GET['user'] ?? 'nobody';
上面的運算式等同:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
而且可以串一個以上的判斷:
$username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';
References