如果是其他运算符的话

Nam*_*mik 2 php ternary-operator

我有if else运算符声明

$row["column"] = ($example == "H") ? "first" : "second";
Run Code Online (Sandbox Code Playgroud)

我需要为此添加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";
{
Run Code Online (Sandbox Code Playgroud)

Qir*_*rel 7

链接三元运算符不是一个好主意.更短的代码并不总是意味着它更具可读性!如果您在彼此内部使用多个三元运算符,则很快就会变得不可读.

相反,使用switch检查每个案例.

switch ($example) {
    case "H":
        $example = "first";
        break;
    case "K":
        $example = "smth different";
        break;
    case "X":
        $example =" third one";
        break;
    default:
        $example = "go away";
}
Run Code Online (Sandbox Code Playgroud)


Sea*_*ght 5

使用关联数组:

$map = [
  'H' => 'first',
  'K' => 'smth different',
  'X' => 'third one',
];

$val = 'go away';
if (isset($map[$example])) {
  $val = $map[$example];
}

echo $val;
Run Code Online (Sandbox Code Playgroud)

或使用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;
Run Code Online (Sandbox Code Playgroud)