我有if语句运算符
$row["column"] = ($example == "H") ? "first" : "second";
我需要为此添加else if
条件。需要使用?
和:
编写类似代码的内容。寻找更短的代码方式,有可能吗?
if($example == "H")
{
$example = "first";
}
else if($example == "K")
{
$example = "smth different";
}
else if($example == "X")
{
$example =" third one";
}
else
{
$example = "go away";
{
答案 0 :(得分:6)
链接三元运算符并不是一个好主意。更短的代码并不总是意味着它更具可读性!如果您在彼此内部使用多个三元运算符,则很快就会变得不可读。
相反,使用switch
检查每个案例。
switch ($example) {
case "H":
$example = "first";
break;
case "K":
$example = "smth different";
break;
case "X":
$example =" third one";
break;
default:
$example = "go away";
}
答案 1 :(得分:5)
$map = [
'H' => 'first',
'K' => 'smth different',
'X' => 'third one',
];
$val = 'go away';
if (isset($map[$example])) {
$val = $map[$example];
}
echo $val;
或使用switch
声明:
switch ($example) {
case 'H':
$val = 'first';
break;
case 'K':
$val = 'smth different';
break;
case 'X':
$val = 'third one';
break;
default:
$val = 'go away';
break;
}
echo $val;
答案 2 :(得分:1)
您可以使用switch语句而不是if / else,例如:
switch ($example)
{
case 'A':
$example = 'first';
break;
case 'B':
$example = 'second';
break;
default:
$example = 'default';
}
答案 3 :(得分:0)
你可以嵌套它们:
$row["column"] = ($example == "H") ? "first" : $row["column"] = ($example == "K") ? "smth different" : ...;
我也建议使用开关而不是