이 코드 줄일 수 있는 방법이 있을까요?
</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로 표현하면 맞는 곳까지만 읽고 그 다음 조건은 무시하고 넘어가서 속도가 더 빠릅니다.
사람이 그 차이를 느낄지는 잘 모르겠지만.... ㅡㅡ;
댓글을 작성하려면 로그인이 필요합니다.
방법이 없습니다. 기본적으로 비선형적인, 그러니까 일반적인 계산으로는 나오지가 않는 방식이라서 정 간결하게 하려면 배열을 쓰시는 수밖에 없습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인