多个php if语句在一个三元运算符中
问题描述:
我有多个if语句来检查四个复选框的值。但是我看到我的代码不好,并且在每个if语句中都包含重复的代码。多个php if语句在一个三元运算符中
我知道使用一个if语句条件的三元运算符。但我想在一个三元运算符下面放置我的代码。我怎样才能做到这一点?
信息:三元操作规范使用condition ? action_if_true: action_if_false;
if (!empty($item->divideto_2)) {
$col = 6;
$divide_to = 12/$col;
}
if (!empty($item->divideto_3)) {
$col = 4;
$divide_to = 12/$col;
}
if (!empty($item->divideto_4)) {
$col = 3;
$divide_to = 12/$col;
}
if (!empty($item->divideto_6)) {
$col = 2;
$divide_to = 12/$col;
}
答
你可以做这样的:
$col = 0;
$divide_to = 12/((! empty($item->divideto_2))
? ($col = 6)
: (! empty($item->divideto_3))
? ($col = 4)
: (! empty($item->divideto_4))
? ($col = 3)
: (! empty($item->divideto_6))
? ($col = 2)
: $col);
但是,以便更好地观察,用另一种形式。
+1
谢谢你这是工作 –
+0
不客气:) – Allan
我不会推荐三元运算符把所有这些放在一行中。你会串起多个三元组,它会变得太复杂。相反,如果要减少检查次数,请使用else。 – aynber
除了嵌套的三元陈述令人困惑,难以理解和[高于一切] *不可维护*;嵌套的三元组需要替换嵌套的if/else语句,而不是你自己的。 – Sammitch
如果你不喜欢'if',你可以尝试'switch':D – Andrew