묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
애드온 제작에 관하여 질문이 있습니다!!
2009.03.05 09:26
안녕하세요 ^^
애드온을 만들고 있는데 이해가 가지 않는 부분이 있어서 이렇게 질문 올립니다.
보통 PHP에서 전역 변수를 사용하기 위해서 global 키워드를 사용하잖아요?
그런데 이상하게 애드온 제작할 때 global 키워드를 써도 전역 변수를 참조할 수가 없더라구요.
아 그런데 $GLOBALS 배열로 참조는 됩니다..
근데 $GLOBALS 로 참조하는 것도 HTTP나 PHP 기본 전역변수이지 제가 직접 만든 전역변수는 아닙니다.
에 .. 궁금한게 혹시 지금 애드온 호출 지점이 before_module_init 인데요 ..
매뉴얼을 보니 이 지점은 모듈 핸들러 생성자 부분이라고 하던데요 ..
혹시 생성자라는 함수 내에서 선언한 변수이기 때문에 제가 선언한 변수들은 모두 전역변수가 아니게 되는건가요?
그래서 전역변수로 참조가 안되는 걸까요??
그럼 좀더 상위 스코프의 변수를 참조하려면 함수를 호출 할 때 변수를 파라미터로 전달하는 방법 외에는 없나요?
조언 부탁드립니다 ^^;
애드온을 만들고 있는데 이해가 가지 않는 부분이 있어서 이렇게 질문 올립니다.
보통 PHP에서 전역 변수를 사용하기 위해서 global 키워드를 사용하잖아요?
그런데 이상하게 애드온 제작할 때 global 키워드를 써도 전역 변수를 참조할 수가 없더라구요.
아 그런데 $GLOBALS 배열로 참조는 됩니다..
근데 $GLOBALS 로 참조하는 것도 HTTP나 PHP 기본 전역변수이지 제가 직접 만든 전역변수는 아닙니다.
에 .. 궁금한게 혹시 지금 애드온 호출 지점이 before_module_init 인데요 ..
매뉴얼을 보니 이 지점은 모듈 핸들러 생성자 부분이라고 하던데요 ..
혹시 생성자라는 함수 내에서 선언한 변수이기 때문에 제가 선언한 변수들은 모두 전역변수가 아니게 되는건가요?
그래서 전역변수로 참조가 안되는 걸까요??
그럼 좀더 상위 스코프의 변수를 참조하려면 함수를 호출 할 때 변수를 파라미터로 전달하는 방법 외에는 없나요?
조언 부탁드립니다 ^^;
댓글 2
-
라르게덴
2009.03.05 14:15
-
비누방울팡팡
2009.03.05 15:09
와 .. // 감사합니다 +_+
그러고 보니 set()을 사용해도 되는거였네요 ~~ ^^
그리구 아깐 제가 좀 실수를 했었나봐요 .. ;; $GLOBALS로 변수 선언하고 가져오니깐 잘 되네요 ^^;;
답변 너무 감사드립니다 헤헷
그리하여 act를 각각 나눠서 그에 맞는 부분에서 선언해야하지요.
$GLOBALS이 되지 않는다면 아래와 같은 방법으로 행하시면 됩니다.
변수 선언
Context::set('값','변수명');
불러올때
Context::get('변수명');