Foros del Web » Programando para Internet » PHP »

como devolver mas de un valor con una funcion

Estas en el tema de como devolver mas de un valor con una funcion en el foro de PHP en Foros del Web. Hola tengo una funcion que necesito que modifique 6 variables. Si las modifico directamente en el cuerpo de la funcion. al salir de esta recuperaran ...
  #1 (permalink)  
Antiguo 11/05/2005, 11:26
 
Fecha de Ingreso: mayo-2004
Mensajes: 180
Antigüedad: 13 años, 6 meses
Puntos: 2
como devolver mas de un valor con una funcion

Hola tengo una funcion que necesito que modifique 6 variables.

Si las modifico directamente en el cuerpo de la funcion. al salir de esta recuperaran los valores originales o se cambiaran por los que puse dentro de la funcion? Hay alguna manera de hacer esto? Gracias
  #2 (permalink)  
Antiguo 11/05/2005, 11:33
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 15 años, 4 meses
Puntos: 15
Bueno Aqui un ejemplo:
Las variables fuera de la funcion son globales, puedes llamarlas dentro de la funcion como globales y cambiarle el valor sin dar un return de ellas. Mira este ejemplo:
Código PHP:
<?php
$a 
"Hola";
$b "Gente";

cambiar();
echo 
$a." ".$b;

function 
cambiar(){
 global 
$a;
 global 
$b;
 
$a "Gente";
 
$b "Hola";    
}
?>
El resultado es "Gente Hola" ya que la funcion le cambio el orden. Si comentas la linea:
cambiar();
Te dara como resultado "Hola Gente"
  #3 (permalink)  
Antiguo 11/05/2005, 11:47
 
Fecha de Ingreso: abril-2005
Mensajes: 171
Antigüedad: 12 años, 7 meses
Puntos: 0
No se si lo he entendido bien quieres que una funcion te modifique los valores de unas variables, pasale las variables como referencia
creo que en php se hace poniendo & antes del nombre de la variable:

function (&$nombre variable1....las variables que quieras){....

Con esto modificas las variables que tienes fuera y no son variables globales
(no son recomendables si se puede hacer de otra forma)

Espero haberte ayudado
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 05:41.