我必须根据两个变量($x
和$y
)采取措施。下满足这些需求,但不是很可读的,它是不是真的明显,$x/$y
的1/4
做同样的事情$x/$y
的5/3
。从可读性和可维护性的角度来看,编写此代码的最佳方法是什么?当我特别要求一个PHP解决方案时,希望该解决方案可以扩展到其他语言,例如JavaScript。
<?php
switch($x) {
case 1: case 2: case 3:
switch($y) {
case 1: case 2:
doTask(1);
break;
case 3: case 4:
doTask(2);
break;
default:
doTask(3);
}
break;
case 4: case 5:
switch($y) {
case 1: case 2: case 4:
doTask(4);
break;
case 3:
doTask(2);
break;
default:
doTask(2);
}
break;
default:
switch($y) {
case 1:
doTask(6);
break;
case 2: case 3: case 4:
doTask(2);
break;
default:
doTask(3);
}
}
?>
如果您创建了一个数组来映射它,它将像这样工作:
$task_x = [
1 => [1 => 1, 2 => 1, 3 => 2, 4 => 2, 'd' => 3],
2 => [1 => 1, 2 => 1, 3 => 2, 4 => 2, 'd' => 3],
3 => [1 => 1, 2 => 1, 3 => 2, 4 => 2, 'd' => 3],
4 => [1 => 4, 2 => 4, 3 => 2, 4 => 4, 'd' => 2],
5 => [1 => 4, 2 => 4, 3 => 2, 4 => 4, 'd' => 2],
'd' => [1 => 6, 2 => 2, 3 => 2, 4 => 2, 'd' => 3]
];
// PHP 7
$task_y = $task_x[$x] ?? $task_x['d'];
$task_n = $task_y[$y] ?? $task_y['d'];
// or PHP 5
//$task_y = isset($task_x[$x]) ? $task_x[$x] : $task_x['d'];
//$task_n = isset($task_y[$y]) ? $task_y[$y] : $task_y['d'];
doTask($task_n);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句