PHP에서 슈퍼 글로벌 변수를 만드시겠습니까?
$ _POST 및 $ _GET과 같은 내 사용자 지정 전역 변수를 만드는 방법이 있습니까?
정적 클래스 변수는 전역 적으로 참조 될 수 있습니다. 예 :
class myGlobals {
static $myVariable;
}
function a() {
print myGlobals::$myVariable;
}
예, 가능하지만 소위 "핵심"PHP 기능으로는 불가능합니다. runkit이라는 확장 프로그램을 설치해야합니다 : http://www.php.net/manual/en/runkit.installation.php
그런 다음 http://www.php.net/manual/en/runkit.configuration.php#ini.runkit.superglobal에 설명 된대로 php.ini에서 사용자 지정 슈퍼 글로벌을 설정할 수 있습니다.
나는 당신이 이미 그것을 가지고 있다고 생각합니다-당신이 전역 공간에서 만드는 모든 변수는 다음 과 같이 $ GLOBALS 하위 전역을 사용하여 액세스 할 수 있습니다 .
// in global space
$myVar = "hello";
// inside a function
function foo() {
echo $GLOBALS['myVar'];
}
이 문제를 해결하는 또 다른 방법은 정적 클래스 메서드 또는 변수를 사용하는 것입니다.
예를 들면 :
class myGlobals {
public static $myVariable;
}
그런 다음 함수에서 다음과 같이 전역 변수를 참조 할 수 있습니다.
function Test()
{
echo myGlobals::$myVariable;
}
다른 언어만큼 깨끗하지는 않지만 적어도 항상 전역으로 선언 할 필요는 없습니다.
Class Registry {
private $vars = array();
public function __set($index, $value){$this->vars[$index] = $value;}
public function __get($index){return $this->vars[$index];}
}
$registry = new Registry;
function _REGISTRY(){
global $registry;
return $registry;
}
_REGISTRY()->sampleArray=array(1,2,'red','white');
//_REGISTRY()->someOtherClassName = new className;
//_REGISTRY()->someOtherClassName->dosomething();
class sampleClass {
public function sampleMethod(){
print_r(_REGISTRY()->sampleArray); echo '<br/>';
_REGISTRY()->sampleVar='value';
echo _REGISTRY()->sampleVar.'<br/>';
}
}
$whatever = new sampleClass;
$whatever->sampleMethod();
별로. 그 추악함에 신경 쓰지 않는다면 거기있는 것들을 남용 할 수 있습니다.
아니
이 설명서 에는 내장 된 슈퍼 글로벌 만 나열되어 있습니다.
또한 서버의 환경 변수를 사용하여 PHP로 액세스 할 수 있습니다. 서버를 소유하고 독점적으로 사용하는 경우 전역 데이터베이스 액세스를 저장할 수있는 좋은 방법입니다.
가능한 해결 방법 $GLOBALS
:
file.php :
$GLOBALS['xyz'] = "hello";
any_included_file.php :
echo $GLOBALS['xyz'];
참조 URL : https://stackoverflow.com/questions/834491/create-superglobal-variables-in-php
'IT Share you' 카테고리의 다른 글
Node / Express로 엔터프라이즈 앱 빌드 (0) | 2020.12.15 |
---|---|
PhpMailer 대 SwiftMailer? (0) | 2020.12.15 |
루비를 느리게 만드는 것은 무엇입니까? (0) | 2020.12.15 |
HTML 문서에 외부 글꼴을로드하려면 어떻게합니까? (0) | 2020.12.15 |
SQLite 쿼리에서 LIMIT 문 사용 (0) | 2020.12.15 |