variable usar manejo globales estaticas ejemplos declarar php global-variables global

usar - ¿Cómo declarar una variable global en php?



variables estaticas php (10)

Tengo un código como este:

<? $a="localhost"; function body(){ global $a; echo $a; } function head(){ global $a; echo $a; } function footer(){ global $a; echo $a; } ?>

¿Hay alguna manera de definir la variable global en un solo lugar y hacer accesible la variable $a en todas las funciones a la vez? sin hacer uso de global $a; ¿Más?


¿Qué pasa si haces uso de la función de procedimiento en lugar de variable y los llamas a donde quieras?

Normalmente hago una colección de valores de configuración y los pongo dentro de una función con declaración de retorno. Solo incluyo eso donde necesito hacer uso del valor global y llamar a una función particular.

function host() { return "localhost"; }


Agregue sus variables en $ GLOBALS super global array como

$GLOBALS[''variable''] = ''localhost'';

y usarlo globalmente

o puede usar la constante que es accesible a través de la secuencia de comandos

define(''HOSTNAME'', ''localhost'');


Esta respuesta es muy tarde, pero lo que hago es establecer una clase que contenga booleanos, matrices y valores enteros iniciales como variables estáticas de alcance global. Cualquier cadena constante se define como tal.

define("myconstant", "value"); class globalVars { static $a = false; static $b = 0; static $c = array(''first'' => 2, ''second'' => 5); } function test($num) { if (!globalVars::$a) { $returnVal = ''The '' . myconstant . '' of '' . $num . '' plus '' . globalVars::$b . '' plus '' . globalVars::$c[''second''] . '' is '' . ($num + globalVars::$b + globalVars::$c[''second'']) . ''.''; globalVars::$a = true; } else { $returnVal = ''I forgot''; } return $returnVal; } echo test(9); ---> The value of 9 + 0 + 5 is 14. echo "<br>"; echo globalVars::$a; ----> 1

Las palabras clave static deben estar presentes en la clase, de lo contrario los valores $ a, $ b y $ c no tendrán un alcance global.


La matriz $GLOBALS se puede usar en su lugar:

$GLOBALS[''a''] = ''localhost''; function body(){ echo $GLOBALS[''a'']; }

Del $GLOBALS :

Una matriz asociativa que contiene referencias a todas las variables que están definidas actualmente en el alcance global de la secuencia de comandos. Los nombres de las variables son las claves de la matriz.

Si tiene un conjunto de funciones que necesitan algunas variables comunes, una clase con propiedades puede ser una buena opción en lugar de una global:

class MyTest { protected $a; public function __construct($a) { $this->a = $a; } public function head() { echo $this->a; } public function footer() { echo $this->a; } } $a = ''localhost''; $obj = new MyTest($a);


Puede probar el use la palabra clave en las funciones de Cierre o Lambdas si esto se ajusta a su intención ... PHP 7.0 sin embargo. No es mejor así, es solo una alternativa.

$foo = "New"; $closure = (function($bar) use ($foo) { echo "$foo $bar"; })("York");

demo | info


Si la variable no cambiará, puede usar define

Ejemplo:

define(''FOOTER_CONTENT'', ''Hello I/'m an awesome footer!''); function footer() { echo FOOTER_CONTENT; }


Si una variable se declara fuera de una función, ya está en el alcance global. Entonces no hay necesidad de declarar. Pero desde donde llama a esta variable debe tener acceso a esta variable. Si llama desde dentro de una función, debe usar global palabra clave global :

$variable = 5; function name() { global $variable; $value = $variable + 5; return $value; }

El uso de palabras clave globales fuera de una función no es un error. Si desea incluir este archivo dentro de una función, puede declarar la variable como global .

config.php global $variable; $variable = 5;

other.php function name() { require_once __DIR__ . ''/config.php''; }

También puedes usar $GLOBALS . Es un superglobal por lo que tiene acceso a todas partes.

$GLOBALS[''variable''] = 5; function name() { echo $GLOBALS[''variable'']; }

Dependiendo de tu elección, puedes elegir cualquiera.


Una variable declarada fuera de una función tiene un ALCANCE GLOBAL y solo se puede acceder fuera de una función

<?php global $a; $a=10; echo $a; function xl($a){ echo "in the function".$a." <br/>"; } echo "in outside ".$a."<br/>"; xl($a); ?>


Usted respondió esto de la forma en que escribió la pregunta: use ''definir''. pero una vez configurado, no puede cambiar una definición.

Alternativamente, hay trucos con una constante en una clase, como clase :: constante que puede usar. También puede hacer que sean variables al declarar propiedades estáticas a la clase, con funciones para establecer la propiedad estática si desea cambiarla.


Ya no deberías usar globales, no están disponibles en PHP 5.4.