Foros del Web » Programando para Internet » PHP »

Duda con respecto a valores devueltos en funciones

Estas en el tema de Duda con respecto a valores devueltos en funciones en el foro de PHP en Foros del Web. Quería preguntarles algo que no tengo bien en claro. En el supuesto caso de que tenga una función como la siguiente function devolver($valor){ $dia=$valor+15; $mes=$valor+30; ...
  #1 (permalink)  
Antiguo 22/07/2009, 15:20
Avatar de lucasphp  
Fecha de Ingreso: mayo-2009
Ubicación: Misiones
Mensajes: 170
Antigüedad: 14 años, 11 meses
Puntos: 3
Duda con respecto a valores devueltos en funciones

Quería preguntarles algo que no tengo bien en claro. En el supuesto caso de que tenga una función como la siguiente

function devolver($valor){
$dia=$valor+15;
$mes=$valor+30;

}

¿cómo hago para recibir los valores de $dia y $mes sin modificar $valor? porque hice una función de otro tipo y usé return $dia, pero no me funcionaba. Gracias
  #2 (permalink)  
Antiguo 22/07/2009, 15:25
Avatar de wpersei  
Fecha de Ingreso: septiembre-2006
Ubicación: Bogota
Mensajes: 189
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: Duda con respecto a valores devueltos en funciones

segun entiendo lo que quieres es recibir mas parametros???

yo haria esto

Código PHP:

function devolver($valor$dia$mes){
$dia=$valor+15;
$mes=$valor+30;


y listo

ahora seria bueno que redactaras mejor tu pregunta en caso dado de que no sea satisfactoria la respuesta

saludos
__________________
www.ogallardo.com - Mi blog
  #3 (permalink)  
Antiguo 22/07/2009, 15:48
Avatar de chumisiado  
Fecha de Ingreso: enero-2006
Ubicación: Chilito
Mensajes: 69
Antigüedad: 18 años, 3 meses
Puntos: 0
Busqueda Respuesta: Duda con respecto a valores devueltos en funciones

Lo que tienes que hacer es lo sigueinte

Código PHP:
function devolver($valor$dia=""$mes=""){ 

if ((
trim($dia) == "") AND (trim($dia) == "")){
    
//Haces lo que la funcion hacia hasta ahora
    
$dia=$valor+15
    
$mes=$valor+30
}else{

    
//haces lo nuevo utilizando los parametros de dia y mes por ejemplo
   //Ejemplo
    
$dia=$valor+$dia
    
$mes=$valor+$mes
}


con esto se esta considerando el caso de las partes del codigo e que no llame la funcion con los 3 parametros, ahora si antes de cada parametro pones un & (ejemplo &$dia) significa que si cambias el valor del parametro en la funcion cambiara el valor de la llamada .. se entende?? es decir no tendrias que hacer un return , por que con el hecho de cambiar al valor dentro de la funcion cambiara para el valor de referencia
  #4 (permalink)  
Antiguo 22/07/2009, 16:23
Avatar de lucasphp  
Fecha de Ingreso: mayo-2009
Ubicación: Misiones
Mensajes: 170
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: Duda con respecto a valores devueltos en funciones

Me expresé bastante mal creo. mirá tengo esta función:
$fech="2009-05-07";
Código PHP:
function devolver($fech$año=""$mes="",$dia=""){
list(
$año$mes$dia)=explode("-",$fech);
switch(
$mes){
case 
01$mes="Ene."; break;
case 
02$mes="Feb."; break;
case 
03$mes="Mar."; break;
case 
04$mes="Abr."; break;
case 
05$mes="Mayo"; break;
case 
06$mes="Jun."; break;
case 
07$mes="Jul."; break;
case 
08$mes="Ago."; break;
case 
09$mes="Sep."; break;
case 
10$mes="Oct."; break;
case 
11$mes="Nov."; break;
case 
12$mes="Dic."; break;
}

¿cómo hago para recibir los valores de $dia, $mes y $año?
  #5 (permalink)  
Antiguo 22/07/2009, 16:30
Avatar de chumisiado  
Fecha de Ingreso: enero-2006
Ubicación: Chilito
Mensajes: 69
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Duda con respecto a valores devueltos en funciones

En la declaracion de la funcion pones los & .. parece que no leiste lo que te puse antes y lo que quieres hacer es "retornar" no "recibir"

function devolver($fech, &$año="", &$mes="",&$dia=""){

Saludos
  #6 (permalink)  
Antiguo 22/07/2009, 16:54
Avatar de lucasphp  
Fecha de Ingreso: mayo-2009
Ubicación: Misiones
Mensajes: 170
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: Duda con respecto a valores devueltos en funciones

Cita:
Iniciado por chumisiado Ver Mensaje
En la declaracion de la funcion pones los & .. parece que no leiste lo que te puse antes y lo que quieres hacer es "retornar" no "recibir"

function devolver($fech, &$año="", &$mes="",&$dia=""){

Saludos
Ya lo solucioné :). Muchas gracias, ¡saludos!
  #7 (permalink)  
Antiguo 22/07/2009, 17:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Duda con respecto a valores devueltos en funciones

Otra opción que puedes usar:
Código php:
Ver original
  1. function algo($foo) {
  2.      return array($foo, $bar, $baz);
  3. }
  4.  
  5. list( $ano, $mes, $dia ) = algo($fecha);

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 21:30.