함수 생성시...
함수 내부에 외부 변수를 호출 하기 위하여 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개
배열을 하나 생성 하는 것은 어떤가요?
// 필요한 배열만
$my['g5_config'] = $g5['config'];
$my['xe_config'] = $xe['config'];
...
ex1) global $my;
ex2) test($my);
ps. php 에서 class, public.. 등의 장점이 어떤게 있을까요?
본문의 소스는 그냥 예시입니다.
ps. 저 같은경우는 class를 사용한지 얼마 안되어 정확한 사용방법은 모르구요. 함수를 그룹지어 관리 하는 용도로만 사용합니다. ㅎㅎㅎㅎㅎ
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'];
}
}
클래스 에서는 상위 클래스 그냥 상속해 버리는데요.
이미 사용중이지만 방식이 약간 틀리네요.
이코아리님 소스가 더 좋은것 같아서 그걸로 바꿔야겠네요 ㅎㅎㅎㅎ
클래스와 상관없는 글이였는데 클래스 쪽으로 훨씬 도움을 받게 되었네요! 감사합니다.
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 이 되면 많이 복잡해 져서 아직 거기까지는 못써봤습니다.
아직 stic, extend, public, namespace
등등 어떻게 쓰는지 모르겠더라구요 ㅎㅎㅎㅎ
지금은 지금 함수 집합소 용도로만 ㅋㅋㅋ
__construct 아시다싶이 초기화 함수임으로
function __construct("$g4")
{
$this->g4=$g4;
}
혹은 function __construct()
{
$this->test = "test";
}
이렇게 처리 하는 방식 바께 모르는데 ..
혹씨 되시는지 테스트 해보시고 되시면 알려주세요^^
된다면 현재 api 개발한것 구조를 개선해야겠어요..
배우는 각도에서는 선생님이 없잖아요 모두 선생님이고 모두 학생이니까..
하지만.... 글로벌에 너무 많은 함수가 담겨있음으로... 네임스페이스 단위로 끊어서 상호 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
}