Foros del Web » Programando para Internet » PHP »

Funciones dentro de otras funciones

Estas en el tema de Funciones dentro de otras funciones en el foro de PHP en Foros del Web. ¿En PHP se puede declarar una función dentro de otra función? En la documentación no encuentro nada al respecto y al intentarlo me ha dado ...
  #1 (permalink)  
Antiguo 22/05/2002, 19:35
 
Fecha de Ingreso: mayo-2002
Mensajes: 7
Antigüedad: 15 años, 6 meses
Puntos: 0
Funciones dentro de otras funciones

¿En PHP se puede declarar una función dentro de otra función? En la documentación no encuentro nada al respecto y al intentarlo me ha dado error.
Sería interesante para que así compartieran las variables que le pso a la función principal, si le tengo que pasar otra vez los parámetros a la función secundaria no es nada eficiente.
Saludos y gracias!

  #2 (permalink)  
Antiguo 22/05/2002, 19:45
 
Fecha de Ingreso: diciembre-2001
Mensajes: 451
Antigüedad: 16 años
Puntos: 0
Re: Funciones dentro de otras funciones

puedes dar el codigo que hciste?
  #3 (permalink)  
Antiguo 22/05/2002, 20:42
 
Fecha de Ingreso: mayo-2002
Mensajes: 7
Antigüedad: 15 años, 6 meses
Puntos: 0
Re: Funciones dentro de otras funciones

No, ya lo deshice, pero sería algo así:

function prueba()

function prueba2()
{
aqui el código de prueba2
}

{
aqui el código de prueba
prueba2()
}

Por supuesto sin errores de semántica.
  #4 (permalink)  
Antiguo 22/05/2002, 23:16
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 16 años, 1 mes
Puntos: 68
Re: Funciones dentro de otras funciones

No santus, no puedes declarar una funcion dentro de la declaracion de otra.

Saludos.

<hr><font size=2 face="verdana">- Pablo Daniel Rigazzi (Webstudio)
<font size=1 color="#333333">COORDINADOR PROYECTO REGIONALIZACION ARGENTINA
Visita <a href="http://www.web-studio.com.ar" target="_blank">Web Studio</a> - Tutoriales Photoshop</fo
  #5 (permalink)  
Antiguo 22/05/2002, 23:58
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Funciones dentro de otras funciones

Pablo (Webstudio), amigo lamento contradecirte, pero estuve chusmendo el manual de PHP y me encontre con lo siguiente:
Código:
A function may be defined using syntax such as the following: 

function foo ($arg_1, $arg_2, ..., $arg_n)
{
   echo &quot;Example function.\n&quot;;
   return $retval;
} 
Any valid PHP code may appear inside a function, even other functions and class definitions  
Por lo que es posible definir funciones dentro de otras funciones. Lo que si, estas funciones &quot;Hijas&quot; solo pueden ser llamadas desde la funcion &quot;Padre&quot;. Se entiende?

Consulten el manual, en los user coments y encontraran un ejemplo.

Saludos

<font face=Verdana size=2 color=#006699>Nok;)<br>Juan Pablo Winiarczyk<br>Neuquen - Patagonia Argentina[/CODE]
  #6 (permalink)  
Antiguo 23/05/2002, 01:35
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 16 años, 1 mes
Puntos: 5
Re: Funciones dentro de otras funciones

yo creo que es mas sencillo crear cada funcion por su parte y luego hacer llamadas a las mismas, o sino hacer uso de las clases que para eso estan no?¿ bueno esa es mi opinion.

Pero tu estas diciendo que quieres llamar a una funcion dentro d eotra funcion no?¿? pus tan solo deberias hacer:

&lt;?
function ver(){
$a = &quot;hola&quot;;
echo $a;
}

function hola(){

ver();

}
ver();

?&gt;


No?¿ si te e entendido creo que pides hacer eso, pero bueno yo haria uso de las clases que son mas bonitas

<table style="border:1px solid black"><tr><td><center>
<embed width="88" height="144" src="http://www.alaplaya.com/~epplestun/yo.swf"></td></td><font face=verdana size=1>Ivan Rodriguez el poder es [B]PHP</p></td></tr></table>
  #7 (permalink)  
Antiguo 23/05/2002, 05:20
 
Fecha de Ingreso: mayo-2002
Mensajes: 7
Antigüedad: 15 años, 6 meses
Puntos: 0
Re: Funciones dentro de otras funciones

Yo necesitaría que la función hija compartiese variables con la función padre para así evitar tener que pasárselos.
¿epplestun, en tu ejemplo la función ver() tendría acceso a las variables de la función hola()?
  #8 (permalink)  
Antiguo 23/05/2002, 09:50
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 16 años, 1 mes
Puntos: 68
Re: Funciones dentro de otras funciones


[APLAUSOS]

Nok , la verdad que me cerraste la boca y muy muy bien hecho. Efectivamente, el manual dice que se permiten definir funciones dentro de funciones (aunque sea algo que casi nunca se aplique).
Con solo 1 modificación. Si se puede acceder a una funcion definida dentro de otra, fuera de la primera. Y este es el ejemplo que utilicé para comprobarlo :

&lt;?
function pepe()
{
echo &quot;Estoy dentro de pepe&lt;br&gt;&quot;;
function pepe2()
{
echo &quot;estoy dentro de PEPE2&lt;br&gt;&quot;;
}
pepe2();
}
pepe();
pepe2();
?&gt;

Ahora, lo que Santus necesita, es que una funcion comparta las variables de otra. Santus, para hacer eso, tienes que utilizar el comando :

global $variable;

dentro de la funcion que necesitas que acceda a las variables de la anterior.

Saludos.

<hr><font size=2 face="verdana">- Pablo Daniel Rigazzi (Webstudio)
<font size=1 color="#333333">COORDINADOR PROYECTO REGIONALIZACION ARGENTINA
Visita <a href="http://www.web-studio.com.ar" target="_blank">Web Studio</a> - Tutoriales Photoshop</fo
  #9 (permalink)  
Antiguo 23/05/2002, 10:52
 
Fecha de Ingreso: mayo-2002
Mensajes: 7
Antigüedad: 15 años, 6 meses
Puntos: 0
Re: Funciones dentro de otras funciones

Entonces la cosa quedaría como algo así:

&lt;?
function pepe()
{
echo &quot;Estoy dentro de pepe&lt;br&gt;&quot;;
function pepe2()
{
echo &quot;estoy dentro de PEPE2&lt;br&gt;&quot;;
global $variable;
echo &quot;$variable&quot;;


}
$variable=&quot;Hola&quot;;
pepe2();
}
pepe();
?&gt;

¿Sería estonces así?
  #10 (permalink)  
Antiguo 23/05/2002, 13:27
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Funciones dentro de otras funciones

Dos cositas,

- Pablo (Webstudio) tienes razon lo que aclaras, con la unica salvedad que para llamar a la funcion &quot;Hija&quot; tienes que llamar primero a la funcion &quot;Padre&quot; (Segun un User Coments).
- Otra cosa, no creo que sea muy bueno, desde la programacion, llamar a una funcion definida dentro de otra.

y por ultimo, santus para usar Global no es necesario que las funciones este anidadas, puede ser asi:

Código:
 &lt;?
$variable = &quot;Hola&quot;;

function pepe(){
global $variable;
echo $variable . &quot; Estoy dentro de pepe&lt;br&gt;&quot;;
$variable = &quot;Chau&quot;;
}

function pepe2(){
global $variable; 
echo $variable . &quot;estoy dentro de PEPE2&lt;br&gt;&quot;;
}

pepe();
pepe2();
?&gt;
Saludos

<font face=Verdana size=2 color=#006699>Nok;)<br>Juan Pablo Winiarczyk<br>Neuquen - Patagonia Argentina[/CODE]
  #11 (permalink)  
Antiguo 24/05/2002, 11:30
 
Fecha de Ingreso: mayo-2002
Mensajes: 7
Antigüedad: 15 años, 6 meses
Puntos: 0
Re: Funciones dentro de otras funciones

Gracias a todos!
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:30.