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

print_menu1, print_menu2 함수 나눈 이유가 뭘까요? 채택완료

sinbi 6년 전 조회 2,639

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

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

 

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

 

</p>

<p>function print_menu1($key, $no='')

{

    global $menu;</p>

<p>    $str = print_menu2($key, $no);</p>

<p>    return $str;

}</p>

<p>function print_menu2($key, $no='')

{

    global $menu, $auth_menu, $is_admin, $auth, $g5, $sub_menu;</p>

<p>    $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;</p>

<p>        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 = '';</p>

<p>        if ($menu[$key][$i][4] == 1) $gnb_grp_style = 'gnb_grp_style';

        else $gnb_grp_style = '';</p>

<p>        $current_class = '';</p>

<p>        if ($menu[$key][$i][0] == $sub_menu){

            $current_class = ' on';

        }</p>

<p>        $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>';</p>

<p>        $auth_menu[$menu[$key][$i][0]] = $menu[$key][$i][1];

    }

    $str .= "</ul>";</p>

<p>    return $str;

}</p>

<p>

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

답변 1개

채택된 답변
+20 포인트
6년 전

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

보통

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

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

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

 

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

 

하지만 

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

 

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

 

 

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

답변에 대한 댓글 2개

홀민
6년 전
으흠.....그러면 처음부터 print1,2,3이 생성될지도 모른다고 생각하고 print1로 생성을 한걸수도 잇겠군요..
s
sinbi
6년 전
자세한 설명 감사합니다.
( ^ ________ ^ )===b

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

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

로그인