создать суперглобальные переменные в php?

есть ли способ создать свои собственные суперглобальные переменные, такие как $ _POST и $ _GET?

Solutions Collecting From Web of "создать суперглобальные переменные в php?"

Переменные статического класса можно ссылаться глобально, например:

class myGlobals { static $myVariable; } function a() { print myGlobals::$myVariable; } 

Да, это возможно, но не с так называемыми «основными» функциональными возможностями PHP. Вам необходимо установить расширение под названием runkit: http://www.php.net/manual/en/runkit.installation.php

После этого вы можете установить свои пользовательские суперглобалы в php.ini, как описано здесь: http://www.php.net/manual/en/runkit.configuration.php#ini.runkit.superglobal

Я думаю, что у вас уже есть это – каждая переменная, которую вы создаете в глобальном пространстве, можно получить, используя $ GLOBALS suberglobal следующим образом:

 // in global space $myVar = "hello"; // inside a function function foo() { echo $GLOBALS['myVar']; } 
  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(); 

Еще один способ обойти эту проблему – использовать метод или переменную статического класса.

Например:

 class myGlobals { public static $myVariable; } 

Затем в ваших функциях вы можете просто ссылаться на свою глобальную переменную следующим образом:

 function Test() { echo myGlobals::$myVariable; } 

Не так чисто, как некоторые другие языки, но по крайней мере вам не нужно постоянно объявлять его глобальным.

На самом деле, нет. хотя вы можете просто злоупотреблять теми, которые есть, если вы не против уродства.

нет

В этом руководстве перечислены только встроенные суперглобалы

Вы также можете использовать переменные среды на сервере и обращаться к ним на PHP. Это хороший способ, возможно, хранить доступ к глобальной базе данных, если вы владеете и используете исключительно сервер.

Еще один возможный трюк с $GLOBALS если необходимо, в рамках небольших проектов:

file.php: (где вы определяете свой «супер-глобальный»)

 $GLOBALS['xyz'] = "hello"; 

any_included_file.php:

 global $xyz; //only once enough in the start of the file/method ... ... ... ... ... echo $xyz;