Foros del Web » Programando para Internet » PHP »

Ambito static - Usar valor en otra función

Estas en el tema de Ambito static - Usar valor en otra función en el foro de PHP en Foros del Web. Holas. Lo que quiero hacer es: el valor de una variable estática de una función a(), imprimirla en una funcion b(); Código PHP: <?php //esto es un ejemplo ...
  #1 (permalink)  
Antiguo 22/08/2005, 11:39
 
Fecha de Ingreso: agosto-2005
Mensajes: 143
Antigüedad: 12 años, 3 meses
Puntos: 0
Ambito static - Usar valor en otra función

Holas.

Lo que quiero hacer es: el valor de una variable estática de una función a(), imprimirla en una funcion b();
Código PHP:
<?php
//esto es un ejemplo
function a()
{
    static 
$a=0;
    
//hago algo con $a;
    
$a++;
}
function 
b()
{
    
//recojo el valor de $a de la funcion a() y lo imprimo;
    
echo $a;
}
b();
?>
¿Es posible hacer eso? ¿cómo?

Saludos ;)
  #2 (permalink)  
Antiguo 22/08/2005, 15:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Podrías hacer:
Código PHP:
<?php 
//esto es un ejemplo 
function a() 

    static 
$a=0
    
//hago algo con $a; 
    
return $a++; 

function 
b() 

    
//recojo el valor de $a de la funcion a() y lo imprimo; 
    
echo a(); 

b(); 
?>
En este caso .. a() al ejecutarse (tu función) devuelve su resultado al llamarla .. esa función la llamas en tu otra función.

También puedes declarar como global una variable en una función para que tenga ambito fuera de ella:

Código PHP:
<?php 
//esto es un ejemplo 
function a() 

    global 
$a;
    static 
$a=0// no sé si la combinación "global" y static será correcta?
    //hago algo con $a; 
    
$a++; 

function 
b() 

    
//recojo el valor de $a de la funcion a() y lo imprimo; 
    
echo $a

b(); 
?>
Y lo de "static" en PHP la verdad no lo he usado nunca... no acostumbro a crear funciones recursivas.

Un saludo,
  #3 (permalink)  
Antiguo 22/08/2005, 16:47
 
Fecha de Ingreso: agosto-2005
Mensajes: 143
Antigüedad: 12 años, 3 meses
Puntos: 0
Cluster, gracias por contestar pero no he conseguido echarlo a andar.

Se me olvidó comentar que la funcion a() ya me devuelve un valor(además por referencia :)) y por eso no podia usar esa opción. También he probado millones de combinaciones entre global, static, y variables ajenas a las funciones. Pero no lo e solucionado.

Aún así gracias por las ideas, un saludo ;)
  #4 (permalink)  
Antiguo 22/08/2005, 17:00
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
A mi me parece que el hecho de declarar static a una variable sirve sólo para que esta mantenga su valor entre llamadas a la funcion. Y como cluster explica, conocer su valor es posible retornandolo desde la funcion o declarandola global. Por otro lado, creo que debiera existir la sintaxis: static global $a=0;
  #5 (permalink)  
Antiguo 22/08/2005, 17:47
 
Fecha de Ingreso: agosto-2005
Mensajes: 143
Antigüedad: 12 años, 3 meses
Puntos: 0
Holas.

Ya he explicado anteriormente el porque de no poder devolverla.

Respecto a lo de static global $a=0; Si, devería de existir(si es que no existe algo similar).

Saludos ;)
  #6 (permalink)  
Antiguo 22/08/2005, 17:52
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
el un poco cutre mi idea... pero bueno... si lo que necesitas es eso... sacalo con SESSIONES, asi dispones de los resultados, como ya dije es una chapuza... pero bueno.
__________________
3w.valenciadjs.com
3w.laislatv.com
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 17:28.