Foros del Web » Programando para Internet » PHP »

Duda con retorno valr en funcion php

Estas en el tema de Duda con retorno valr en funcion php en el foro de PHP en Foros del Web. Buenas Tengo la siguiente funcion sencilla que nera un sring con una info y me lo debe devolver... pero hago el llamado a la funcion ...
  #1 (permalink)  
Antiguo 23/01/2012, 22:27
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Duda con retorno valr en funcion php

Buenas

Tengo la siguiente funcion sencilla que nera un sring con una info y me lo debe devolver... pero hago el llamado a la funcion se lo asigno a una variable... pero cuando imprimo la variable nome muestra nada.... Que tengo mal... que no logro identificarlo???????

Si quito el comentario al echo que esta antes del return me imprime lo que estoy esperando.. la funcion esta bien pero no se porque no me retorna el valor... gracias de antemano

Código PHP:
    function GenPath($IdHijo,$PatActual)
    {
          
// cargo los nodos padres.
          
$CarPadres mysql_query("SELECT title, id, parent_id FROM rutas WHERE id=".$IdHijo);
          
// Obtengo los datos de la consulta.
          
$RuTitle mysql_result($CarPadres,0,'title');
          
$RuPadre mysql_result($CarPadres,0,'parent_id');
          
// Limpio la consulta.
          
mysql_free_result($CarPadres);
          
// Genero path
          
$PatActual $RuTitle."/".$PatActual;
          
// Verifico si no hemos llegado a la raiz
          
if ( $RuPadre )
              
// Realizo el autollamado
              
GenPath($RuPadre,$PatActual);                  
         else
         {
              
//echo $PatActual;
            
return $PatActual;
         }
    }
    
//Realizo el llamado a la funcion que me genera el path de la carpeta seleccionada.
    
$PatGenerado GenPath(11,"");
echo 
$PatGenerado
  #2 (permalink)  
Antiguo 23/01/2012, 22:43
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: Duda con retorno valr en funcion php

pues es muy sencillo, es porque si entra en la primera llamada en el if, no retornarás nada, por consiguiente, en un punto llegaras al path padre, pero como no has hecho el return pertinente el dato se pierde, recuerda, si pones un if else, solo 1 se ejecutara dependiendo de la lógica, nunca ambos....
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 24/01/2012, 14:48
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Respuesta: Duda con retorno valr en funcion php

Gracias nemutagk por su respuesta.

Sigo con la duda porque si se da cuenta cuando hago el llamado a la misma funcion mando como parametro el string para no perder el valor cargado... y lo otro es que cuando entra al else y le quito el comentario al echo si me muesta la ruta compelta generada epro el return no me la devuelve...


Espero me peudan sacar de la duda, gracias
  #4 (permalink)  
Antiguo 24/01/2012, 15:36
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: Duda con retorno valr en funcion php

Lo que pasa es que tu función es recursiva y al cumplir la condición de cierre el return lo recibe la penúltima llamada a la función y de ahí se pierde, donde pones

Código PHP:
Ver original
  1. GenPath($RuPadre,$PatActual);

pon

Código PHP:
Ver original
  1. return GenPath($RuPadre,$PatActual);

La razón por la que si te imprime al descomentar el echo es porque al ser recursiva al menos una vez pasa por el else y lo imprime, pero luego al retornarla la recibe la penúltima llamada y se pierde porque no hay return que lo devuelva a la antepenúltima llamada simplemente continúa la ejecución y termina la función sin retornar nada

Espero lo hayas entendido :P

saludos
__________________
Utilice el Highlight para mostrar código, mis ojos se lo agradecerán :)
qué es esto? :O -> http://i48.tinypic.com/5x3kzs.png
Ya sabes :)
  #5 (permalink)  
Antiguo 24/01/2012, 21:04
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Respuesta: Duda con retorno valr en funcion php

jaja primera vez que me enredo tanto con una funcion php... ya la probe y funciona perfectamente... aunque si le soy sincero sigo enredado no entiendo el porque tengo que darle el return al autollamado... si tiene tiempito para un tris de plastilina le agradzco para noquedarme con la duda...Saludos y muchas gracias
  #6 (permalink)  
Antiguo 25/01/2012, 07:52
Avatar de Ribon  
Fecha de Ingreso: septiembre-2010
Ubicación: El firmamento
Mensajes: 487
Antigüedad: 13 años, 7 meses
Puntos: 91
Respuesta: Duda con retorno valr en funcion php

Arriba te lo expliqué xD! al parecer no lo entendiste xD!

Bueno como apoyo a lo que te dije acá tienes una imagen explicativa :P




http://i43.tinypic.com/294oww6.png

Saludos
__________________
Utilice el Highlight para mostrar código, mis ojos se lo agradecerán :)
qué es esto? :O -> http://i48.tinypic.com/5x3kzs.png
Ya sabes :)
  #7 (permalink)  
Antiguo 25/01/2012, 17:16
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Respuesta: Duda con retorno valr en funcion php

jaja textualmente me explico con plastilina muchas gracias jajajajaj

Etiquetas: funcion, mysql, 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 16:59.