T

함수 생성시...

함수 내부에 외부 변수를 호출 하기 위하여 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;
     }
     처리문 ~~~~~
}

좋은 의견 부탁 드립니다.~~

이미지 9.png




|

댓글 10개

global 로 저렇게 많이 가져와야 할 상황이라면 구조적으로 점검해 봐야 할 것 같은데
배열을 하나 생성 하는 것은 어떤가요?

// 필요한 배열만
$my['g5_config'] = $g5['config'];
$my['xe_config'] = $xe['config'];
...

ex1) global $my;
ex2) test($my);


ps. php 에서 class, public.. 등의 장점이 어떤게 있을까요?
깔끔한 코딩을 위하여 global을 구분하려구요 ㅎㅎㅎ
본문의 소스는 그냥 예시입니다.

ps. 저 같은경우는 class를 사용한지 얼마 안되어 정확한 사용방법은 모르구요. 함수를 그룹지어 관리 하는 용도로만 사용합니다. ㅎㅎㅎㅎㅎ
//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'];
}
}


클래스 에서는 상위 클래스 그냥 상속해 버리는데요.
감사합니다.
이미 사용중이지만 방식이 약간 틀리네요.
이코아리님 소스가 더 좋은것 같아서 그걸로 바꿔야겠네요 ㅎㅎㅎㅎ



클래스와 상관없는 글이였는데 클래스 쪽으로 훨씬 도움을 받게 되었네요! 감사합니다.
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 이 되면 많이 복잡해 져서 아직 거기까지는 못써봤습니다.
좋은 정보 감사합니다.

아직 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
}
용도에 따라서 구분해서 중복 선언하는 거 좋다고 생각합니다. 코드 정리 차원에서... ^^ 선언문이 시스템을 많이 잡아 먹는 것도 아니고 화면상 보기에 좋다면 저는 작성하신 것처럼 용처에 따라서 나눠서 선언하는 것이... 군장 쌀 때 끈처리를 잘 해야 깔끔해 보이는 것처럼... ㅎㅎ 그런면에서 테.보님 소스는 언제나 직각으로 정리가 되어 있어서 보기에 좋은 거 같아요.
게시판이라 들여 쓰기가 풀린거에요 ㅋㅋ
댓글을 작성하시려면 로그인이 필요합니다. 로그인

프로그램

태그 필터 (최대 3개) 전체 개발자 소스 기타 mysql 팁자료실 javascript php linux flash 정규표현식 jquery node.js mobile 웹서버 os 프로그램 강좌 썸네일 이미지관련 도로명주소 그누보드5 기획자 견적서 계약서 기획서 마케팅 제안서 seo 통계 서식 통계자료 퍼블리셔 html css 반응형 웹접근성 퍼블리싱 표준화 반응형웹 홈페이지기초 부트스트랩 angularjs 포럼 스크린리더 센스리더 개발자톡 개발자팁 퍼블리셔톡 퍼블리셔팁 기획자톡 기획자팁 프로그램강좌 퍼블리싱강좌
+
제목 글쓴이 날짜 조회
12년 전 조회 6,056
12년 전 조회 1,379
12년 전 조회 605
12년 전 조회 455
12년 전 조회 479
12년 전 조회 587
12년 전 조회 829
12년 전 조회 1,453
12년 전 조회 956
12년 전 조회 1,190
12년 전 조회 452
12년 전 조회 549
12년 전 조회 2,547
12년 전 조회 1,635
12년 전 조회 1,348
12년 전 조회 3,187
12년 전 조회 599
12년 전 조회 2,373
12년 전 조회 1,938
12년 전 조회 1,791
12년 전 조회 1,873
12년 전 조회 814
12년 전 조회 1,360
12년 전 조회 1,359
12년 전 조회 843
12년 전 조회 3,202
12년 전 조회 505
12년 전 조회 1,005
12년 전 조회 1,403
12년 전 조회 1,828
12년 전 조회 673
12년 전 조회 1,377
12년 전 조회 741
12년 전 조회 2,345
12년 전 조회 787
12년 전 조회 481
12년 전 조회 701
12년 전 조회 2,262
12년 전 조회 1,781
12년 전 조회 4,096
12년 전 조회 1,381
12년 전 조회 1,816
12년 전 조회 1,202
12년 전 조회 1,189
12년 전 조회 678
12년 전 조회 732
12년 전 조회 1,647
12년 전 조회 753
12년 전 조회 511
12년 전 조회 1,076
12년 전 조회 1,414
12년 전 조회 667
12년 전 조회 771
12년 전 조회 1,007
12년 전 조회 1,784
12년 전 조회 684
12년 전 조회 926
12년 전 조회 2,887
12년 전 조회 662
12년 전 조회 574
12년 전 조회 469
12년 전 조회 1,240
12년 전 조회 1,056
12년 전 조회 3,711
12년 전 조회 863
12년 전 조회 732
12년 전 조회 607
12년 전 조회 488
12년 전 조회 1,011
12년 전 조회 735
12년 전 조회 874
12년 전 조회 398
12년 전 조회 439
12년 전 조회 571
12년 전 조회 975
12년 전 조회 962
12년 전 조회 443
12년 전 조회 814
12년 전 조회 4,599
12년 전 조회 2,612
12년 전 조회 864
12년 전 조회 620
12년 전 조회 1,419
12년 전 조회 784
12년 전 조회 5,163
12년 전 조회 6,241
12년 전 조회 1,077
12년 전 조회 842
12년 전 조회 486
12년 전 조회 1,012
12년 전 조회 905
12년 전 조회 887
12년 전 조회 654
12년 전 조회 958
12년 전 조회 1,365
12년 전 조회 1,533
12년 전 조회 792
12년 전 조회 1,898
12년 전 조회 710
12년 전 조회 1,006
🐛 버그신고