Foros del Web » Programando para Internet » PHP »

funciones dentro de variables

Estas en el tema de funciones dentro de variables en el foro de PHP en Foros del Web. hola foro! hoy me he topado con este, al menos para mi, confuso tema. Tengo este codigo: function hi(){echo "hola"; } pues si guardo esta ...
  #1 (permalink)  
Antiguo 02/11/2010, 16:41
 
Fecha de Ingreso: enero-2010
Mensajes: 53
Antigüedad: 14 años, 9 meses
Puntos: 2
funciones dentro de variables

hola foro!
hoy me he topado con este, al menos para mi, confuso tema.
Tengo este codigo:

function hi(){echo "hola"; }

pues si guardo esta funcion en una variable, se supone que tan solo con mencionar la variable, se procesa la funcion, verdad? asi:

$imprime=hi();

pero, si dejo el codigo como esta, y lo cargo en el navegador, se imprime el saludo. Mi intencion no es que se imprima el saludo, a menos que mas adelante yo escriba de nuevo "$imprime;" y obtenga el saludo. No deberia ser asi?

pues, si en una variable guardo una funcion, deberia ser para usar dicha funcion mas tarde, no para ejecutarla!!!!! cual es la manera correcta? pues he visto este recurso en muchas scripts que estudio, pero a mi no me funciona.

Sera que la razon es que en el caso de los scripts que estudio siempre hay una referencia a una funcion de otro archivo ('require()')??
  #2 (permalink)  
Antiguo 02/11/2010, 16:58
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 9 meses
Puntos: 96
Respuesta: funciones dentro de variables

Saludos

Cada vez que llames la funcion como la tienes implementada te imprimira hola

Código PHP:

function hi(){echo "hola"; }
$imprime=hi(); 
Si lo que necesitas es controlar el saludo osea que no se imprima cada vez que llamas la funcion deberias realizarlo de la siguiente manera

Código PHP:

function hi(){
$saludo="hola"
return 
$saludo;
}
$imprime=hi(); 
de esta manera en tu variable $imprime estara guardada el retorno de la funcion.
y solo imprmira siempre y cuando tu le indiques
Código PHP:
$imprime=hi();
echo 
$imprime


Hasta Pronto
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 02/11/2010, 18:03
 
Fecha de Ingreso: enero-2010
Mensajes: 53
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: funciones dentro de variables

entenido, nano, y mil gracias por la respuesta!
  #4 (permalink)  
Antiguo 02/11/2010, 19:51
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 8 meses
Puntos: 67
Respuesta: funciones dentro de variables

Yo agregaría lo siguiente, las funciones no se guardan en variables, eso no es posible al menos en PHP (creo que tampoco es posible en ningún otro lenguaje). Si necesitas ejecutarla en cualquier otro momento simplemente llámala con su nombre:

Código PHP:
hi(); 
No tiene porque estar en una variable. Así no trabajan las variables y las funciones.
  #5 (permalink)  
Antiguo 03/11/2010, 13:30
 
Fecha de Ingreso: enero-2010
Mensajes: 53
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: funciones dentro de variables

gracias elJavista, pero si que se puede y es mas, en algunos casos muy conveniente hacerlo. Pero veras, aun no entiendo muy bien el tema. Aqui por ejemplo:

function hi(){
$numero = 1;
while($numero < 5){
$numero++;
//return $numero;
}
}

$mi=hi();
echo $mi;


si pongo 'echo' dentro de la funcion, me imprime todo el bucle, como es devido. Pero solamente cuando guardo en la variable, pues luego solo imprime la primer vuelta del bucle. Si en vez de echo pongo 'return', por mucho que llame la funcion, solo imprime una unica vez. Como puedo hacer para guardar la funcion en una variable de manera que cada vez que use dicha variable se ejecute el bucle completo???
  #6 (permalink)  
Antiguo 03/11/2010, 13:33
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 9 meses
Puntos: 96
Respuesta: funciones dentro de variables

Saludos

Código PHP:
function hi(){
$numero 1;
while(
$numero 5){
$valor[]=$numero;//se guardaria en forma de arreglo
$numero++;

}
return 
$valor;
}

$mi=hi();
var_dump($mi); 
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #7 (permalink)  
Antiguo 03/11/2010, 13:47
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: funciones dentro de variables

te recomiendo leer el manual de php.. estas cosas están en las primeras paginas =)



funcion dentro de variable :B
Código PHP:
function foo()
{
    echo 
'foobar';
}
$function 'foo';
echo 
$function(); // imprime foobar 
__________________
More about me...
~ @rhyudek1
~ Github

Etiquetas: funciones, variables
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 21:28.