for 문과 if elseif 문의 드립니다

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
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}";
    }
답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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