특정 코드를 실행해야하는지 결정하는 두 개 (때로는) 세 개의 변수가 있습니다. 문제는 그들 중 어느 것이 든 참일 수도 있고 거짓 일 수도 있고 때로는 지저분한 코드로 이어진다는 것입니다.
세 가지 변수에 대해 확인해야 할 8 가지 가능한 시나리오가 있습니다. 이렇게 :
if($var_a && $var_b && $var_c) {
// Do this (A)
} else if(!$var_a && $var_b && $var_c) {
// Do this (B)
} else if($var_a && !$var_b && $var_c) {
// Do this (C)
} else if(!$var_a && !$var_b && $var_C) {
// Do this (D)
}
... and so on.
중첩을 사용하고이 코드를 덜 지저분하게 만드는 방법이 있습니까? 너무 많은 가능성을 추적하는 것은 때때로 혼란스러워집니다.
두 변수의 예를 들어 내가 말하는 것을 이해하는 것이 더 쉬울 수 있습니다.
if($var_a && $var_b) {
// Do this (A)
} else if($var_a && !$var_b) {
// Do this (B)
} else if(!$var_a && $var_b) {
// Do this (C)
}
함께 그래서 많은 사용하지 않는 것이 이러한 조건을 결합 할 수있는 방법이 있나요 &&
및 if else
조건은? 이렇게하면 세 가지 (더 많을 수 있음) 변수를 처리해야 할 때 상황이 덜 혼란스러워집니다.
나는 당신이 bitwise map을 가진 lookup map 과 같은 것을 시도해야한다고 생각합니다 . 귀하의 경우에는 다음과 같을 수 있습니다.
$bitOne = $var_a ? 1 : 0;
$bitTwo = $var_b ? 2 : 0;
$bitThree = $var_c ? 4 : 0;
$resultKey = $bitOne | $bitTwo | $bitThree;
$map = [
7 => function() { return 'All are true'; },
3 => function() { return 'var_a and var_b are true'; },
6 => function() { return 'var_b and var_c are true'; },
// and so on
];
$result = $map[$resultKey];
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다