for 문과 if elseif 문의 드립니다

for 문과 if elseif 문의 드립니다

QA

for 문과 if elseif 문의 드립니다

본문

아래 내용을 for 문이나 기타 반복문으로 간단히 할 수 있나요..

이리저리 궁리해봐도 되지 않네요

 


if($type1){
    include_once("$board_skin_path/list1.skin.php");
}elseif($type2){
    include_once("$board_skin_path/list2.skin.php");
}
elseif($type3){
    include_once("$board_skin_path/list3.skin.php");
}
elseif($type4){
    include_once("$board_skin_path/list4.skin.php");
}
elseif($type5){
    include_once("$board_skin_path/list5.skin.php");
}
else{
    include_once("$board_skin_path/list.skin.php");
}

이 질문에 댓글 쓰기 :

답변 4

간결하게 정리를 좀 해봤습니다.


    $type = "";
    if($type1) $type = "1";
    if($type2) $type = "2";
    if($type3) $type = "3";
    if($type4) $type = "4";
    if($type5) $type = "5";
 
    $skin_path = "{$board_skin_path}/list{$type}.skin.php";
    include_once($skin_path);

 

여기에서 for 문같은 loop를 적용하기 쉬울겁니다.

감사합니다. 역시 고수들의 코드는 짧고 간결하네요..그런데
아래 내용두 반복문이라 for문으로 하고 싶었거든요...그리구 type도 더 여러개를 해보려구 for문으로 돌리고 싶었습니다.. 한수 더 가르쳐 줄수 있는지요..

bbs/list.php 상단에 위의 내용을
  $type = "";
    if($type1) $type = "1";
    if($type2) $type = "2";
    if($type3) $type = "3";
    if($type4) $type = "4";
    if($type5) $type = "5";
을 넣고 아래처럼 했습니다 for문으로 못했구요...

//페이징부분//
$write_pages = get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, get_pretty_url($bo_table, '', $qstr.'&page='), '&type'.$type.'=ok');

//스킨호출부분//
$skin_path = "{$board_skin_path}/list{$type}.skin.php";
include_once($skin_path);

로 처리했습니다.  10분의 1 정도로 간결해졌습니다 감사합니다.
그런데 위에서 type1 ~ type5 의 숫자부분을 변수로 하려면 어떻게 하면 되나요....$type$i 이런식으로 안되던데요~~

$type1 이값이 1~5를 받는다는 가정한다면

if($type){
    include_once("$board_skin_path/list".$type.".skin.php");
}

이렇게 하면 되지 않을까요?

답변 감사합니다 그런데
위 내용은 하나의 게시판으로 여러개의 스킨을 적용하기 위해 bbs/list.php의 가장 아래를 수정한 것입니다.
현재 위와 같이 한 상태에서 스킨폴더에 list1.skin.php ~ list5.skin.php 를 넣고
bbs/board.php?bo_table=blog&type1=ok 과 같은 형식으로 불러오면 해당 스킨이 적용됩니다...
현재는 잘 작동하구 있지만 너무 길어서 짧게 줄이고 싶어서 질문 올렸습니다

[적용페이지]
https://beomsu.com/bbs/board.php?bo_table=blog&type2=ok

이 방법이 가장 간결하고 좋아 보입니다.

switch($type){
case '1': case '2': case '3': case '4': case '5':
    include_once("$board_skin_path/list".$type.".skin.php");
default:
    include_once("$board_skin_path/list.skin.php");
}
이런 방법도 있습니다.

우선 $type1 ~ $type5까지 무슨 값이 들어있는지 알면 조금 구현이 쉬울듯한데,

간단하게는

$type1 ~ $type5까지의 값을

$type_check 라는 변수에 넣으시고, switch문을 쓰는게 나을듯합니다.


switch ($type_check){
    case '타입1':
        include_once("$board_skin_path/list1.skin.php");
        break;
    case '타입2':
        include_once("$board_skin_path/list2.skin.php");
        break;
    case '타입3':
        include_once("$board_skin_path/list3.skin.php");
        break;
    default:
        include_once("$board_skin_path/list.skin.php");
        break;
}

 

답변감사합니다 그런데
 $type1 ~ $type5 에는 무슨 값은 넣은 것이아니라 주소불러올때
bbs/board.php?bo_table=blog&type1=ok 와 같이 불러오기 위한 것입니다..
코드가 길어서 짧게 줄이고 싶어서 문의 올렸습니다

  
    $type = "";
    if($type1) $type = "1";
    if($type2) $type = "2";
    if($type3) $type = "3";
    if($type4) $type = "4";
    if($type5) $type = "5";

위의 것 for문 처리 맞나요?


   $type = "";
    for($i=1;$i<6;$i++){
    if(${"type".$i}) $type = "{$i}";
    }
답변을 작성하시기 전에 로그인 해주세요.
전체 70
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT