함수에 global 주는 이유는 뭘까요?

함수에 global 주는 이유는 뭘까요?

QA

함수에 global 주는 이유는 뭘까요?

답변 3

본문

뭐.... 당연하게도 함수 내에서 전역변수를 불러오기 위해서 

glabal을 쓴다..... 라는건 그렇다 치는데

단적인 예를들면

latest.lib.php 파일에서

function latest() 함수 내에

global $g5; <== 요게 명시되어있는데

그럼 global $g5; 변수 지정을 하는 이유? 의미?는 무엇일까요??

그리고 해당 변수는 파일 및 함수 내에서 어떤 값을 가지고 있나요??

 

이제 쌩 기초적인 부분은 겨우겨우 지나가면서

그누보드 파악하는 중인데 변수 활용이 너무 다양해서

골치아프네요 ㅎㅎ global 쓰는 이유 최소한 위 파일 내 함수내에서 하는 역할좀 알려주세요 ㅠ

이 질문에 댓글 쓰기 :

답변 3

함수에서는 전역변수를 바로 사용할 수 없고 사용하기 위해서는 global 으로 선언을 해줘야 사용할 수 있습니다. 이미 알고 게신 내용이죠.

 

$g5는 그누보드의 배열 변수이며 아래와 같은 값이 들어 있습니다.

그누보드에서 사용되는 DB Table 정보와 DB 연결정보등이 들어 있기 때문에 함수에서는 "global $g5;"로 해주면 함수내에서 아래의 모든 값들을 자유롭게 사용할 수 있는것이죠.

ex) "$g5['board_file_table']" <=  이건 게시판 첨부파일 정보가 담긴 테이블.

Array
(
    [write_prefix] => g5_write_
    [auth_table] => g5_auth
    [config_table] => g5_config
    [group_table] => g5_group
    [group_member_table] => g5_group_member
    [board_table] => g5_board
    [board_file_table] => g5_board_file
    [board_good_table] => g5_board_good
    [board_new_table] => g5_board_new
    [login_table] => g5_login
    [mail_table] => g5_mail
    [member_table] => g5_member
    [memo_table] => g5_memo
    [poll_table] => g5_poll
    [poll_etc_table] => g5_poll_etc
    [point_table] => g5_point
    [popular_table] => g5_popular
    [scrap_table] => g5_scrap
    [visit_table] => g5_visit
    [visit_sum_table] => g5_visit_sum
    [uniqid_table] => g5_uniqid
    [autosave_table] => g5_autosave
    [cert_history_table] => g5_cert_history
    [qa_config_table] => g5_qa_config
    [qa_content_table] => g5_qa_content
    [content_table] => g5_content
    [faq_table] => g5_faq
    [faq_master_table] => g5_faq_master
    [new_win_table] => g5_new_win
    [menu_table] => g5_menu
    [social_profile_table] => g5_member_social_profiles
    [connect_db] => mysqli Object
        (
            [affected_rows] => 0
            [client_info] => mysqlnd 5.0.12-dev - 20150407 - $Id: 38fea24f2847fa7519001be390c98ae0acafe387 $
            [client_version] => 50012
            [connect_errno] => 0
            [connect_error] => 
            [errno] => 0
            [error] => 
            [error_list] => Array
                (
                )

            [field_count] => 8
            [host_info] => localhost via TCP/IP
            [info] => 
            [insert_id] => 0
            [server_info] => 5.5.5-10.3.8-MariaDB
            [server_version] => 50505
            [stat] => Uptime: 114693  Threads: 7  Questions: 12612  Slow queries: 0  Opens: 81  Flush tables: 1  Open tables: 60  Queries per second avg: 0.109
            [sqlstate] => 00000
            [protocol_version] => 10
            [thread_id] => 1611
            [warning_count] => 0
        )

    [sms5_prefix] => sms5_
    [sms5_config_table] => sms5_config
    [sms5_write_table] => sms5_write
    [sms5_history_table] => sms5_history
    [sms5_book_table] => sms5_book
    [sms5_book_group_table] => sms5_book_group
    [sms5_form_table] => sms5_form
    [sms5_form_group_table] => sms5_form_group
    [title] => 그누보드5
    [lo_location] => 그누보드5
    [lo_url] => 
)

 

 

완전 너무 좋은 댓글 너무 감사합니다!!
이게 너무 궁금했었거든요 ㅠㅠ
각각의 변수가 어떤 역할을 하는지 ㅠㅠ
그누보드는 서로 파일간에 인클루드가 되어서
파일간에 상호역할 하는건 정리를 해놓았었는데
뜬금없는 글로벌이나 리스트 그런 몇몇개가 골치 아팠는데
궁금한 부분 중에서 많은 부분이 해결되었습니다!!
너무 감사합니다!!

http://tcpschool.com/php/php_basic_variableType

무의미하다고 생각되면 주석처리하고 다시 브라우저를 열어보세요..

그 때 벌어지는 일을 보면 필요한 것인지 알 수 있겠죠?
개발자도구 콘솔창을 열어보면 해당 오류가 주르륵 보일 수도 있고...

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 98
© SIRSOFT
현재 페이지 제일 처음으로