if elseif else 三元运算符

If elseif else ternary operator

如何将这段代码写成三元运算符:

if (isset($_SESSION['lang'])) {
$_SESSION['lang']   = $_SESSION['lang'];
} elseif (isset($_GET['lang'])) {
$_SESSION['lang']   = $_GET['lang'];
} else {
$_SESSION['lang']   = $defaultLanguage;
}

我使用了这段代码,但它不起作用。

$lang   = (isset($_SESSION['lang']) ? $_SESSION['lang']) : (isset($_GET['lang']) ? $_GET['lang'] : $defaultLanguage);

提前致谢

您可以使用空合并 (??)...

$lang = $_SESSION['lang'] ?? $_GET['lang'] ?? $defaultLanguage;