Foros del Web » Programando para Internet » PHP »

variables globales

Estas en el tema de variables globales en el foro de PHP en Foros del Web. He hecho un código que contiene una parte principal y varias funciones. El código define un array en la parte principal que es usado en ...
  #1 (permalink)  
Antiguo 20/09/2009, 04:08
Avatar de PacoRuiz  
Fecha de Ingreso: abril-2009
Mensajes: 254
Antigüedad: 15 años
Puntos: 3
variables globales

He hecho un código que contiene una parte principal y varias funciones. El código define un array en la parte principal que es usado en las funciones como variable global. dentro de la función escribo global $clases; para que la función acceda a ese array definido en la parte principal. El código funciona correctamente.

Como necesito que introducir el mismo código en muchas páginas, en lugar de pegarlo en todas ellas, hice un include. Cogí el fichero y creé una función que correspondía a la parte principal del código, por ejemplo principal(), y al fichero lo llamé libreria.php.

Luego cogí otro fichero donde anteriormente tenía pegado el código anterior y funcionaba correctamente, borré dicho código y lo sustituí por include 'libreria.php';
y principal();

En teoría debería funcionar igual, ejecuta principal() que corresponde a la parte principal del código anterior y llama a las funciones que llamaba el código anterior y que funcionaban bien.

El código no funciona porque no reconoce la variable clases que en este caso en lugar de estar definidas en la parte principal están definidas en una función: principal().

¿Es que no se pueden definir variables globales dentro de una función?

El código es complejo, pero he hecho este ejemplo sencillo del mismo caso. El código no muestra nada. ¿Cómo puedo hacer para que muestre el array de modo que pueda llamar a principal() desde cualquier página utilizando un include?

Última edición por PacoRuiz; 20/09/2009 a las 04:20
  #2 (permalink)  
Antiguo 20/09/2009, 04:40
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 1 mes
Puntos: 14
Respuesta: variables globales

Tienes que indicar en todas partes que usas una variable global. Es decir, si tienes una función que usa la variable global $clases y quieres usar esa misma variable, el código principal debería ser algo así:

Código PHP:
global $clases

funcion
();

echo 
$clases
El "global $clases" va en todas las funciones y ficheros que usen esa variable.
  #3 (permalink)  
Antiguo 20/09/2009, 05:02
Avatar de PacoRuiz  
Fecha de Ingreso: abril-2009
Mensajes: 254
Antigüedad: 15 años
Puntos: 3
Respuesta: variables globales

Ok ya funciona
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:46.