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