함수에 global 주는 이유는 뭘까요?
본문
뭐.... 당연하게도 함수 내에서 전역변수를 불러오기 위해서
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] =>
)
무의미하다고 생각되면 주석처리하고 다시 브라우저를 열어보세요..
그 때 벌어지는 일을 보면 필요한 것인지 알 수 있겠죠?
개발자도구 콘솔창을 열어보면 해당 오류가 주르륵 보일 수도 있고...