Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

diferencia entre pasar una instancia como valor o referencia

Estas en el tema de diferencia entre pasar una instancia como valor o referencia en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola Tengo una duda... cual es la diferencia entre pasar una instancia de una clase a un metodo como referecia y como valor?? gracias...
  #1 (permalink)  
Antiguo 12/06/2006, 08:45
 
Fecha de Ingreso: julio-2004
Mensajes: 61
Antigüedad: 19 años, 9 meses
Puntos: 0
diferencia entre pasar una instancia como valor o referencia

Hola

Tengo una duda... cual es la diferencia entre pasar una instancia de una clase a un metodo como referecia y como valor??

gracias
  #2 (permalink)  
Antiguo 12/06/2006, 10:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Pues en PHP5 los objetos se pasan por referencia para mas facil manejo esto te sirve para no estar llenando tu memoria de objetos y estarlos copiando.

Un ejemplo de esto es por decir:
Código PHP:
// supongamos que $autobus es una clase llena de otra clase llamada gente
$persona1 $autobus->damePasajero); // le decimos a autobus que nos de el pasajero 1
$persona1->nombre "Juan Perez";
$persona1->edad 30;
$persona1->destino = new Destino"Calle, colonia, cp" ); 
Al nosotros pedirle a autobus un pasajero de su storage, nos devuelve una referencia a la persona asi podemos modificar sus valores y automaticamente se guardan en el storage del autobus.

Si lo pasamos como valor (por defecto en PHP4) entonces tendriamos que tener un metodo mas en autobus para que guarde de regreso el pasajero que le pedimos porque es otro objeto diferente.

Otro ejemplo mas practico es este:
Código PHP:
$objeto1 = new Objeto();
$objeto1->valor "hola!";
$objeto2 $objeto1;
$objeto2->valor "adios!";

echo 
$objeto1->valor// imprime adios!
echo $objeto2->valor// imprime adios! 
esto es porque $objeto2 es una referencia a $objeto1, (pero solo en PHP5), en PHP4 el resultado seria:
Código PHP:
echo $objeto1->valor// imprime hola!
echo $objeto2->valor// imprime adios! 
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 00:18.