空合并运算符到 if 语句

null coalesce operator into if statement

在我的代码下方使用新的 php 空合并。

($i[$_SERVER['PATH_INFO'] ?? '/']  ?? $i[''])();

我想转换成if语句。有人可以帮我吗?谢谢

我们将对您的代码进行改进。

// Your code
($i[$_SERVER['PATH_INFO'] ?? '/']  ?? $i[''])();

这里实际上要说的是 if (is_null($_SERVER['PATH_INFO'])) 所以我们可以有效地做的只是改革您的代码。

if (is_null($_SERVER['PATH_INFO'])) {
    if (is_null($i['/'])) {
        $i['']();
    } else {
        $i['/']();
    }
} else {
    if (is_null($i[$_SERVER['PATH_INFO']])) {
        $i['']();
    } else {
        $i[$_SERVER['PATH_INFO']]();
    }
}