P粉0293277112023-09-05 12:26:32
雖然您要求更短,但有時我認為更清晰更好。大多數其他答案都包括額外的數組或三元組,它們完全沒問題並且 100% 有效,但我認為代碼的意圖並不那麼明顯。對我來說,我會保留 if
並僅使用
和 --
進行遞增和遞減。我認為“業務規則”非常明顯,程式碼讀起來也很乾淨。
再一次,不完全是你所要求的,只是我的兩分錢。
if ('up' === $vote) { $voteModel['up']++; $voteModel['down']--; } else { $voteModel['up']--; $voteModel['down']++; }
P粉1667793632023-09-05 00:11:58
解決方案1:
$arg = $vote === 'up' ? [1,-1] : [-1,1]; $voteModel['up'] += $arg[0]; $voteModel['down'] += $arg[1];
解決方案2:
$voteModel['up'] += ($vote === 'up' ? 1 : -1); $voteModel['down'] += ($vote !== 'up' ? 1 : -1);
解決方案 3(若 $voteModel
中「up」為索引 1,「down」為索引 0):
$voteModel[$vote==='up']++; $voteModel[$vote==='down']--;
解決方案 3b(如果我們想保留關聯鍵):
$arr = ['down','up']; $voteModel[$arr[$vote==='up']]++; $voteModel[$arr[$vote==='down']]--;