1

我知道 PHP 中有 IF/ELSE STATEMENT 的简写,例如

($user['permissions'] == 'admin' ? true : false);

但是除了 switch 之外,还有 ELSE IF 语句的简写吗?

4

2 回答 2

3

你能做什么

您可以继续将三元运算符链接在一起,例如:

$x = $condition1 ? true : ($condition2 ? true : false);

现在看起来不错,但是一旦你的条件变大,它很快就会变得不可读。请注意,括号是此类表达式的基本要素。

你应该做什么

添加更多条件后,更喜欢使用正确的分支语法;总是假设后来必须接管你的代码的人是一个知道你住在哪里的精神病患者:

$canAccess = false;
if ($user['permissions'] == 'admin') {
    $canAccess = true;
} elseif ($user['permissions'] == 'whatever') {
    $canAccess = true;
}

是的,您也可以or在第一个语句中使用 an。

或者,一个开关:

switch ($user['permissions']) {
    case 'admin':
    case 'whatever':
        $canAccess = true;
        break;

    default:
        $canAccess = false;
}
于 2013-05-30T02:13:53.140 回答
2

elseif() {}无论如何我宁愿使用

$somevalue == 'foo' ? 'is foo' : ($somevalue == 'bar' ? 'is bar' : 'is neither');
于 2013-05-30T02:10:29.910 回答