답변 4개
위의 if문을 줄일 수 있는 한 가지 팁은 배열로 선언하는 것입니다. 다음과 같이 작성할 수 있습니다.
$wr = array('wr_1', 'wr_2', 'wr_3', 'wr_4', 'wr_10', 'wr_13');
if (array_intersect_key($view, array_flip($wr))) {
.....
}
이렇게 하면 각 요소를 배열로 선언하고 array_intersect_key() 함수를 사용하여 $view 배열과 $wr 배열을 비교할 수 있습니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
function chk_value(array $arr){
$return = false;
foreach ($arr as $key => $value) {
if($value != ""){
$return = true;
break;
}
}
return $return;
}
$ck = array();
$ck[] = $view['wr_1'];
$ck[] = $view['wr_2'];
$ck[] = $view['wr_3'];
$ck_tf = chk_value($ck);
if($ck_tf){
....
}
함수를 어딘가에 박아버리면 끝 이라고 생각합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
DB에서 select할 때
select ..., concat( wr_1,wr_2, ..., wr_13) wr_n from ...
하고
if( $view['wr_n']) // 하는 방법도 있습니다.
?>
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
$arr = array("wr_1","wr_2","wr_3","wr_4","wr_10","wr_13");
$arrchk = false;
foreach($arr as $key => $value) {
if ($value) {
$arrchk = true;
break;
}
}
if ($arrchk) {
// 실제 필요로직
}
if 문의 복잡도를 줄이기위해서 선행되는 문장들이 길어졌긴했지만
위의 내용들의 체크가 많거나 복잡도가 높으면 나눠서 판단하는게 효과적입니다.
조금 다르게 응용하면 체크해야할 로직을 array 의 loop를 통해서 체크하고
or조건일때 참인경우와 and일때참인경우를 함수로 만드는것도 방법일겁니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인