함수 내부에 외부 변수를 호출 하기 위하여 global 을 사용하는데...

이걸 구분별로 global 여러개 하는것에 대하여 어떻게 생각 하세요?
예를들면
# 이해를 돕기위한 예제입니다. 실제 사용되지 않습니다.
function test() {
// 그누 보드 환경변수 Global
global $g5, $config, $member, $board;
// 코어 환경변수
global $Core, $CoreMember;
// 클래스 변수
global $TbClass, $CoreClass;
if( $member['mb_id'] != $CoreMember['mb_id'] ) {
return true;
}
else {
return false;
}
처리문 ~~~~~
}
좋은 의견 부탁 드립니다.~~

댓글 10개
//php 4
class global_test
{
var $g4;
var $member;
var $config;
function global_test()
{
global $g4;
global $member;
global $config;
$this->g4 = $g4;
$this->member = $member;
$this->config = $config;
}
}
$global_test = new global_test();
function test()
{
global $global_test;
echo $global_test->g4['path'];
}
이런식으로 변수하나만 넘기거나,
class global_test_extend extends global_test
{
function global_test_extend()
{
parent::test();
}
function check()
{
echo $this->g4['path'];
}
}
클래스 에서는 상위 클래스 그냥 상속해 버리는데요.
class global_test
{
var $g4;
var $member;
var $config;
function global_test()
{
global $g4;
global $member;
global $config;
$this->g4 = $g4;
$this->member = $member;
$this->config = $config;
}
}
$global_test = new global_test();
function test()
{
global $global_test;
echo $global_test->g4['path'];
}
이런식으로 변수하나만 넘기거나,
class global_test_extend extends global_test
{
function global_test_extend()
{
parent::test();
}
function check()
{
echo $this->g4['path'];
}
}
클래스 에서는 상위 클래스 그냥 상속해 버리는데요.
php5
config_class
{
public static $g4;
public static $member;
public static $is_admin;
public satic $board;
public function __construct()
{
global $g4;
global $member;
global $is_admin;
global $board;
self::$g4 = $g4;
self::$member = $member;
self::$is_admin = $is_admin;
self::$board = $board;
}
}
/lib/latest.php
function latest(...)
{
echo config_class::$g4['path'];
}
config_class_test extends config_class
{
public function __construct()
{
parent::__construct();
}
function test()
{
echo self::$member['mb_id'];
}
}
php5 가 되면 이건 좀 편해지더군요.
5.3 이 되면 많이 복잡해 져서 아직 거기까지는 못써봤습니다.
config_class
{
public static $g4;
public static $member;
public static $is_admin;
public satic $board;
public function __construct()
{
global $g4;
global $member;
global $is_admin;
global $board;
self::$g4 = $g4;
self::$member = $member;
self::$is_admin = $is_admin;
self::$board = $board;
}
}
/lib/latest.php
function latest(...)
{
echo config_class::$g4['path'];
}
config_class_test extends config_class
{
public function __construct()
{
parent::__construct();
}
function test()
{
echo self::$member['mb_id'];
}
}
php5 가 되면 이건 좀 편해지더군요.
5.3 이 되면 많이 복잡해 져서 아직 거기까지는 못써봤습니다.
저는 아래처럼 지정해서 사용한지 오래됬는데 사용상에는 문제는 없는것 같습니다.
하지만.... 글로벌에 너무 많은 함수가 담겨있음으로... 네임스페이스 단위로 끊어서 상호 extend 시켜서 필요한 환경 변수만 호출 하도록 하는게 좋을것 같다는........................................... 생각만 1년 내내 하고있는데 방법을 잘 몰라서 ㅋㅋㅋㅋ
코드이그나이터를 좀더 연구 해봐야지요 ㅋㅋㅋ
// 기본함수 로드 처리 및 벤치 마크 기본설정
public function __construct(){
$this->benchmark_start = 0;
$this->benchmark_stop = 0;
$this->Sysload();
}
// 기본 공용 함수 설정
protected function Sysload(){
global $g4, $config, $member, $root, $shop_config, $user_data_folder, $total, $shop, $sell, $job, $news, $school;
$sms_config = sql_fetch("select * from xe_sms2");
$this->g4 = $g4; // array
$this->job = $job; // array
$this->root = $root; // array
$this->shop = $shop; // array
$this->sell = $sell; // array
$this->news = $news; // array
$this->config = $config; // array
$this->member = $member; // array
$this->school = $school; // array
$this->pay_type = $pay_type; // TEXT
$this->sms_config = $sms_config; // array
$this->shop_config = $shop_config; // array
$this->user_data_folder = $user_data_folder; // TEXT
}
하지만.... 글로벌에 너무 많은 함수가 담겨있음으로... 네임스페이스 단위로 끊어서 상호 extend 시켜서 필요한 환경 변수만 호출 하도록 하는게 좋을것 같다는........................................... 생각만 1년 내내 하고있는데 방법을 잘 몰라서 ㅋㅋㅋㅋ
코드이그나이터를 좀더 연구 해봐야지요 ㅋㅋㅋ
// 기본함수 로드 처리 및 벤치 마크 기본설정
public function __construct(){
$this->benchmark_start = 0;
$this->benchmark_stop = 0;
$this->Sysload();
}
// 기본 공용 함수 설정
protected function Sysload(){
global $g4, $config, $member, $root, $shop_config, $user_data_folder, $total, $shop, $sell, $job, $news, $school;
$sms_config = sql_fetch("select * from xe_sms2");
$this->g4 = $g4; // array
$this->job = $job; // array
$this->root = $root; // array
$this->shop = $shop; // array
$this->sell = $sell; // array
$this->news = $news; // array
$this->config = $config; // array
$this->member = $member; // array
$this->school = $school; // array
$this->pay_type = $pay_type; // TEXT
$this->sms_config = $sms_config; // array
$this->shop_config = $shop_config; // array
$this->user_data_folder = $user_data_folder; // TEXT
}
게시글 목록
| 번호 | 제목 |
|---|---|
| 19384 | |
| 27584 | |
| 6013 | |
| 6004 | |
| 27572 | |
| 5997 | |
| 5992 | |
| 5981 | |
| 5964 | |
| 5952 | |
| 5948 | |
| 5941 | |
| 5937 | |
| 5934 | |
| 5931 | |
| 19383 |
MySQL
mysqldump시 한글 깨짐문제..
|
| 5926 | |
| 5923 | |
| 5913 | |
| 24558 | |
| 5912 | |
| 30895 | |
| 27563 | |
| 5907 | |
| 5903 | |
| 5900 | |
| 27556 | |
| 5898 | |
| 24555 | |
| 5894 | |
| 5893 | |
| 5890 | |
| 5884 | |
| 27537 | |
| 5881 | |
| 5878 | |
| 30888 | |
| 30884 | |
| 5876 | |
| 5874 | |
| 27524 | |
| 27514 | |
| 19379 | |
| 19377 |
jQuery
깔끔한 탭메뉴 드립니다.
1
|
| 27509 | |
| 5869 | |
| 5866 | |
| 27505 | |
| 5865 | |
| 5860 | |
| 5857 | |
| 27503 | |
| 27481 | |
| 27462 | |
| 5856 | |
| 19511 | |
| 27458 | |
| 24547 | |
| 19374 | |
| 19373 | |
| 19371 | |
| 27453 | |
| 19370 |
기타
3단 레이어 소스
|
| 27449 | |
| 27441 | |
| 19366 | |
| 24544 | |
| 19365 |
JavaScript
스크롤바 색깔 바꾸는 스크립트
|
| 19361 | |
| 19360 |
JavaScript
윈도우의 창띄위기 소스입니다.
|
| 19358 |
JavaScript
익스에서 깜박임 글자 구현법
1
|
| 19356 |
JavaScript
자바스크립트를 이용해서 모바일에 selet 박스 구현한것입니다
1
|
| 19354 |
JavaScript
새창띄우는 소스입니다.
1
|
| 19351 | |
| 19348 | |
| 19346 | |
| 19339 |
jQuery
제이쿼리를 이용한 펼침메뉴 1차입니다.
6
|
| 19334 | |
| 5849 | |
| 27439 | |
| 5846 | |
| 27434 | |
| 27429 | |
| 19331 |
PHP
메쏘드 static 선언
2
|
| 19329 |
JavaScript
마우스 오버시 이미지 바꾸기
1
|
| 19328 |
JavaScript
일정시간후 스크립트 실행
|
| 5841 | |
| 5840 | |
| 19326 |
정규표현식
구글 로봇 접근막기!
1
|
| 5834 | |
| 5831 | |
| 5826 | |
| 19324 |
PHP
시리얼번호생성기
1
|
| 5821 | |
| 32040 | |
| 27426 | |
| 19320 | |
| 5816 | |
| 32030 | |
| 5815 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기