所以我有一堆关于单选按钮的问题,每个问题都有三个选项可供选择。我有一堆If语句(其中很多)根据每个问题的答案确定最终答案。
例如:
Question 1 :
a)
b)
c)
Question 2 :
d)
e)
f)
Question 3 :
g)
h)
i)
等等。
if语句如下: if(问题1 == a ||问题2 == f&& Question 3 == i)
如果我想以if语句的形式获得所有条件,那么它需要太多空间而且可能不是最佳实践。
重构所有这些if语句的最佳方法是什么?
答案 0 :(得分:0)
如果每一个选择组合都会产生独特的结果,那么你实际上是在看一个n维矩阵。简单来说,将每个选项视为数组中路径的一个步骤:
$outcomes = array(
'a' => array(
'd' => array(
'g' => 'Outcome 1',
'h' => 'Outcome 2',
'i' => 'Outcome 3'
),
'e' => array(..),
..
'b' => array(..),
..
);
echo 'The outcome is: ', $outcomes[$question1][$question2][$question3];
这实际上是否是实现这一目标的最佳方式是值得怀疑的,我们不知道更多关于你的逻辑的事情。
答案 1 :(得分:0)
我最终用switch语句和函数重构它。我相信我能做到更优雅的方式。如果我找到方法,将更新答案。