如何将其转换为三元运算符

时间:2014-12-09 07:35:31

标签: php if-statement ternary-operator

我想将此代码转换为三元运算符:

if (isset($a)) {
    $arr[$k] += $c;
}
else {
    $arr[$k] = $c;
}

如果它是单个运算符,我可以这样做,但ifelse中的运算符不同。

怎么做?

2 个答案:

答案 0 :(得分:4)

不仅仅是:

$arr[$k] = isset(a$) ? ($arr[$k]+$c) : $c

或等效地:

$arr[$k] = $c + (isset($a) ? $arr[$k] : 0)

答案 1 :(得分:3)

您的案例可能的转换算法(如学校代数)

  1. 直接转换。

    isset($a) ? ($arr[$k] += $c) : ($arr[$k] = $c);

  2. 爆炸+ =

    isset($a) ? ($arr[$k] = $arr[$k] + $c) : ($arr[$k] = $c);

  3. 将作业移至左侧

    $arr[$k] = isset($a) ? ($arr[$k] + $c) : ($c);

  4. 移动$ c

    $arr[$k] = (isset($a) ? $arr[$k] : 0) + $c;

  5. 没有三元的变体(作为奖励)。

    $arr[$k] = $c + isset($a) * $arr[$k];