在 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

留言