print_menu1, print_menu2 함수 나눈 이유가 뭘까요?

print_menu1, print_menu2 함수 나눈 이유가 뭘까요?

QA

print_menu1, print_menu2 함수 나눈 이유가 뭘까요?

답변 1

본문

/adm/admin.head.php 보면 관리자 메뉴를 print_menu1, print_menu2 함수 이용해출력하는데,

구조를  보면 이렇게 둘로 나눌 필요가 없어 보이는데, 왜 이런 식으로 처리한 걸까요?

 

그냥, print_menu() 함수 하나면 해결될 것 같은데... 둘로 나눈 이유가 궁금합니다.

 


function print_menu1($key, $no='')
{
    global $menu;
    $str = print_menu2($key, $no);
    return $str;
}
function print_menu2($key, $no='')
{
    global $menu, $auth_menu, $is_admin, $auth, $g5, $sub_menu;
    $str .= "<ul>";
    for($i=1; $i<count($menu[$key]); $i++)
    {
        if ($is_admin != 'super' && (!array_key_exists($menu[$key][$i][0],$auth) || !strstr($auth[$menu[$key][$i][0]], 'r')))
            continue;
        if (($menu[$key][$i][4] == 1 && $gnb_grp_style == false) || ($menu[$key][$i][4] != 1 && $gnb_grp_style == true)) $gnb_grp_div = 'gnb_grp_div';
        else $gnb_grp_div = '';
        if ($menu[$key][$i][4] == 1) $gnb_grp_style = 'gnb_grp_style';
        else $gnb_grp_style = '';
        $current_class = '';
        if ($menu[$key][$i][0] == $sub_menu){
            $current_class = ' on';
        }
        $str .= '<li data-menu="'.$menu[$key][$i][0].'"><a href="'.$menu[$key][$i][2].'" class="gnb_2da '.$gnb_grp_style.' '.$gnb_grp_div.$current_class.'">'.$menu[$key][$i][1].'</a></li>';
        $auth_menu[$menu[$key][$i][0]] = $menu[$key][$i][1];
    }
    $str .= "</ul>";
    return $str;
}

이 질문에 댓글 쓰기 :

답변 1

만든사람 마음이라 정확한 이유는 알 수 없습니다만,

보통

꾸준히 업데이트 되는 프로그램을 관리할떄 업데이트를 하는경우 종종 처리하는 방법 중 하나입니다

보통 저런 경우는 버전 업데이트가 되면서 구버전과 신버전의 함수가 바뀌어 호환이 안되는경우

하위버전의 함수를 사용하는 프로그램들을 위해 두가지 함수를 둘 다 남겨두었다가,

 

또 버전 업데이트가 되면서 새로운 함수가 구 버전의 함수와 변수 및 출력에 문제가 없게 되어 함수를 굳이 두개 쓰지 않아도 되는경우가 생깁니다.

 

하지만 

그런 경우에 이미 사용중인 프로그램들은 구 버전 신버전을 거치면서 print_menu1를 사용하는 프로그램도 있게되고 print_menu2를 사용하는 프로그램도 있다보니

 

오류를 줄이기 위해 두가지의 함수이름을 남겨두는 경우가 있습니다.

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 1
© SIRSOFT
현재 페이지 제일 처음으로