Foros del Web » Programando para Internet » PHP »

pregunta sobre ambito de variables, funciones y demas

Estas en el tema de pregunta sobre ambito de variables, funciones y demas en el foro de PHP en Foros del Web. Hola a ver os explico tengo una pagina que se llama index.php y otra que se llama usuario.php en index lo que hago es un ...
  #1 (permalink)  
Antiguo 11/05/2005, 10:00
 
Fecha de Ingreso: mayo-2004
Mensajes: 180
Antigüedad: 13 años, 6 meses
Puntos: 2
pregunta sobre ambito de variables, funciones y demas

Hola a ver os explico
tengo una pagina que se llama index.php y otra que se llama usuario.php
en index lo que hago es un require (usuario.php)
mi pregunta es si las variables de usuario pasar a tener el ambito de index?

No se si me explico bien, digo si a la hora de modificar los valores de usuario, desde index si conceptualmente estaria bien.

segunda pregunta
Otra cosa que os quiero preguntar. Si tengo este codigo

$a = 1
$b = 2
procesar();

donde procesar es una funcion que hace $a = a+1 y $b = b+a.
y devuelve el valor uno (return 1).

estaria bien que a y b cambiasen de valor en la funcion asi?= o tendria que hacer cada uno por separado con la funcion return?
  #2 (permalink)  
Antiguo 11/05/2005, 11:49
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
En el manual tienes una referencia buena sobre el ámbito de las variables:
http://www.php.net/variables.scope
Código PHP:
function procesar(){
   
$a a+1;
   
$b b+a;
   return 
1;
}

$a 1
$b 
2
procesar
(); 
¿Es eso lo que pretendes hacer?... Pues así tal como está no funcionará porque las variables $a y $b no están definidas en el ámbito de la función procesar().

Para que esto funcione, deberás declarar las variables dentro de la función como globales, así la función sabrá que cuando "hablas" de las variables $a y $b te estás refiriendo a las globales.
Código PHP:
function procesar(){
   global 
$a$b;
   
$a a+1;
   
$b b+a;
   return 
1;

Saludos
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 07:31.