我知道PHP中有IF / ELSE STATEMENT的简写,例如
($user['permissions'] == 'admin' ? true : false);
但除了开关之外,是否有ELSE IF语句的简写?
答案 0 :(得分:3)
你能做什么
您可以将三元运算符链接在一起,例如:
$x = $condition1 ? true : ($condition2 ? true : false);
现在看起来不错,但是一旦你的情况变得更大,它很快就会变得难以理解。请注意,括号是这些表达式的基本要素。
你应该做什么
添加更多条件后,更喜欢使用正确的分支语法;总是假设后来接管你的代码的人是一个知道你住在哪里的精神病患者:
$canAccess = false;
if ($user['permissions'] == 'admin') {
$canAccess = true;
} elseif ($user['permissions'] == 'whatever') {
$canAccess = true;
}
是的,您也可以在第一个语句中使用or
。
或者,开关:
switch ($user['permissions']) {
case 'admin':
case 'whatever':
$canAccess = true;
break;
default:
$canAccess = false;
}
答案 1 :(得分:2)
我宁愿只使用elseif() {}
$somevalue == 'foo' ? 'is foo' : ($somevalue == 'bar' ? 'is bar' : 'is neither');