테스트 사이트 - 개발 중인 베타 버전입니다

이 코드 줄일 수 있는 방법이 있을까요?

</p>

<p>if ($bo_table == 'product01') {

    $gnb = "gnb02";

    $lnb = "lnb01";

    $lnbSub = "lnbSub01";

}

if ($bo_table == 'product02') {

    $gnb = "gnb02";

    $lnb = "lnb01";

    $lnbSub = "lnbSub02";

}

if ($bo_table == 'product03') {

    $gnb = "gnb02";

    $lnb = "lnb01";

    $lnbSub = "lnbSub03";

}

if ($bo_table == 'product04') {

    $gnb = "gnb02";

    $lnb = "lnb02";

    $lnbSub = "lnbSub01";

}

if ($bo_table == 'product05') {

    $gnb = "gnb02";

    $lnb = "lnb02";

    $lnbSub = "lnbSub02";

}

if ($bo_table == 'product06') {

    $gnb = "gnb02";

    $lnb = "lnb02";

    $lnbSub = "lnbSub03";

}

if ($bo_table == 'product07') {

    $gnb = "gnb02";

    $lnb = "lnb03";

    $lnbSub = "lnbSub01";

}

if ($bo_table == 'product08') {

    $gnb = "gnb02";

    $lnb = "lnb03";

    $lnbSub = "lnbSub02";

}

if ($bo_table == 'product09') {

    $gnb = "gnb02";

    $lnb = "lnb04";

}

if ($bo_table == 'product10') {

    $gnb = "gnb02";

    $lnb = "lnb04";

}

if ($bo_table == 'product11') {

    $gnb = "gnb02";

    $lnb = "lnb05";

}

if ($bo_table == 'product12') {

    $gnb = "gnb02";

    $lnb = "lnb06";

}

if ($bo_table == 'product13') {

    $gnb = "gnb02";

    $lnb = "lnb07";

}</p>

<p>

 

 

위처럼 쓰인 코드인데 반복적으로 들어가는 부분들을 합쳐서 간결하게 하고 싶은데 어떻게 해야 할까요?

댓글을 작성하려면 로그인이 필요합니다.

답변 5개

</p>

<p>$navigation = array(

    'product01'=>array(

        'gnb'=>'gnb02'

        , 'lnb'=>'gnb02'

        , 'lnbSub'=>'lnb01'

    ), 'product02'=>array(

        'gnb'=>'gnb02'

        , 'lnb'=>'lnb01'

        , 'lnbSub'=>'lnbSub02'

    )

);</p>

<p>if($bo_table != ''){

    $gnb = isset($navigation[$bo_table]['gnb']) ?$navigation[$bo_table]['gnb'] : '';

    $lnb = isset($navigation[$bo_table]['lnb']) ?$navigation[$bo_table]['lnb'] : '';

    $lnbSub = isset($navigation[$bo_table]['lnbSub']) ?$navigation[$bo_table]['lnbSub'] : '';

}</p>

<p>

 

저는 이렇게 씁니다.

bo_table 대신 gr_id 로 변경하여 쓸 수도 있습니다.

extend 폴더 내에 파일 하나 생성해서 위와 같이 관리하면, 굳이 개발자가 아니여도 디자이너나 퍼블리셔가 쉽게 변경하거나 추가하여 쓸 수 있습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

"01,01","02" => "01,02","03" => "01,02","09" => "04,");

// 빈 product07 => "07" => "03,01" , 앞은 lnb, 뒤는 lnbsub     $tarr = explode(',',$arr[$no]);     if($tarr[0] != '') $lnb = 'lnb'.$tarr[0];     if($tarr[1] != '') $lnbSub = 'lnbSub'.$tarr[1]; }

이런식으로 할 수 있지 않을까요 ?

해보지는 않아서 잘 될지는 모르겠어

arr 에 배열을 넣는 방법이네요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

function doAction(str,sq) {     switch (str) {     case "coverEdit":         coverEdit(sq);         break;                      case "coverInsert":         coverInsert();         break;              case "insert":        //입력실행ajax         coverInsertAjax();         break;            

    case "edit":        //수정실행ajax         coverEditAjax();         break;            

    case "preview":    //alert(sq);         CoverPreview(sq);         break;              case "delete":             fncDeleteAll();             break;             } } 

 

이런식으로 하시든지요?

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

else if로 표현하시는 게 속도가 더 좋을 듯 합니다. (코드를 더 넣으셔야.ㅎㅎ)

위처럼 하면 페이지 접속할 때마다 모든 if문을 읽지만,

else if로 표현하면 맞는 곳까지만 읽고 그 다음 조건은 무시하고 넘어가서 속도가 더 빠릅니다.

사람이 그 차이를 느낄지는 잘 모르겠지만.... ㅡㅡ;

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

방법이 없습니다. 기본적으로 비선형적인, 그러니까 일반적인 계산으로는 나오지가 않는 방식이라서 정 간결하게 하려면 배열을 쓰시는 수밖에 없습니다.

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인

전체 질문 목록

🐛 버그신고