Я хочу преобразовать этот код в троичный оператор:
if (isset($a)) {
$arr[$k] += $c;
}
else {
$arr[$k] = $c;
}
Я могу сделать это, если бы это был один оператор, но операторы разные в if
а также else
,
Как это сделать?
Возможный алгоритм преобразования в вашем случае (например, школьная алгебра)
Прямое преобразование.
isset($a) ? ($arr[$k] += $c) : ($arr[$k] = $c);
Взорваться + =
isset($a) ? ($arr[$k] = $arr[$k] + $c) : ($arr[$k] = $c);
Переместить задание влево
$arr[$k] = isset($a) ? ($arr[$k] + $c) : ($c);
Переместить $ c
$arr[$k] = (isset($a) ? $arr[$k] : 0) + $c;
И вариант без троичного (как бонус).
$arr[$k] = $c + isset($a) * $arr[$k];
Разве это не просто
$arr[$k] = isset(a$) ? ($arr[$k]+$c) : $c
или эквивалентно:
$arr[$k] = $c + (isset($a) ? $arr[$k] : 0)