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 lugar y hacer que la variable sea $aaccesible en todas las funciones a la vez? sin hacer uso de global $a;más?
php
global-variables
global
LIGERO
fuente
fuente

globalpalabra clave, considere usar el$GLOBALS['a']superglobal en todos los ámbitos, o considere pasar el parámetro a sus funciones.Respuestas:
La
$GLOBALSmatriz se puede usar en su lugar:Del manual :
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:
fuente
Si la variable no va a cambiar, puede usar
defineEjemplo:
fuente
FOOTER_CONTENTse intenta modificar? ¿Es comofinalen Java oconsten C, C ++ y C #?Agregue sus variables en $ GLOBALS super global array como
y usarlo globalmente
o puede usar constantes que son accesibles en todo el script
fuente
Si una variable se declara fuera de una función, ya está en el ámbito global. Entonces no hay necesidad de declarar. Pero desde donde llama a esta variable debe tener acceso a esta variable. Si llama desde una función, debe usar la
globalpalabra clave:Usar una palabra clave global 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.Puedes usar
$GLOBALStambién. Es un superglobal, por lo que tiene acceso a todas partes.Dependiendo de su elección, puede elegir cualquiera.
fuente
Esta respuesta es muy tardía, pero lo que hago es establecer una clase que contenga valores booleanos, matrices y valores enteros iniciales como variables estáticas de alcance global. Cualquier cadena constante se define como tal.
Las
staticpalabras clave deben estar presentes en la clase; de lo contrario, los valores $ a, $ b y $ c no tendrán alcance global.fuente
Respondiste esto en la forma en que escribiste la pregunta: usa 'definir'. pero una vez establecido, no puede cambiar una definición.
Alternativamente, hay trucos con una constante en una clase, como class :: constant que puedes usar. También puede hacerlos variables declarando propiedades estáticas a la clase, con funciones para establecer la propiedad estática si desea cambiarla.
fuente
Puede probar la palabra clave
useen Funciones de cierre o Lambdas si se ajusta a su intención ... PHP 7.0 sin embargo. No, eso es mejor, sino solo una alternativa.demo | informacion
fuente
Pensemos un poco diferente:
Y puede usarlo y modificarlo siempre que lo desee, como:
fuente
¿Qué pasa si hace uso de la función de procedimiento en lugar de variable y los llama a cualquier lugar como usted?
Por lo general, hago una colección de valores de configuración y los pongo dentro de una función con una declaración de retorno. Solo incluyo eso donde necesito hacer uso del valor global y llamar a una función particular.
fuente
$GLOBALS[]es la solución correcta, pero como estamos hablando de alternativas, una función también puede hacer este trabajo fácilmente:fuente
Ya no deberías usar globals, no están disponibles en PHP 5.4.
fuente