variable superglobales paginas manejo globales entre php

paginas - crear variables superglobales en php?



variables globales php entre paginas (9)

Creo que ya lo tienes: se puede acceder a todas las variables que creas en el espacio global utilizando el subtipo $ GLOBALS de la siguiente manera:

// in global space $myVar = "hello"; // inside a function function foo() { echo $GLOBALS[''myVar'']; }

¿Hay alguna manera de crear mis propias variables superglobales personalizadas como $ _POST y $ _GET?


Las variables de clase estáticas se pueden referenciar globalmente, por ejemplo:

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


Otra forma de evitar este problema es utilizar un método o variable de clase estática.

Por ejemplo:

class myGlobals { public static $myVariable; }

Luego, en sus funciones, simplemente puede referirse a su variable global de esta manera:

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

No es tan limpio como algunos otros idiomas, pero al menos no tienes que seguir declarándolo global todo el tiempo.


Otro posible truco con $GLOBALS si es necesario en proyectos pequeños:

file.php: (donde defines tu " superglobal ")

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

any_included_file.php:

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


Realmente no. aunque puedes abusar de los que están ahí si no te importa lo feo que es.



También puede usar las variables de entorno del servidor y acceder a ellas en PHP. Esta es una buena forma de almacenar el acceso a la base de datos global si posee y utiliza exclusivamente el servidor.



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();