Foros del Web » Programando para Internet » PHP »

se pueden pasar objetos como parametros?

Estas en el tema de se pueden pasar objetos como parametros? en el foro de PHP en Foros del Web. hola todos, tengo una duda se pueden pasar objetos como parametros de funciones??, ahora bien, si es posible, el paso de objetos se hace necesariamente ...
  #1 (permalink)  
Antiguo 01/04/2009, 10:22
Avatar de gabrielflowers  
Fecha de Ingreso: julio-2007
Ubicación: Santa Cruz de la Sierra
Mensajes: 187
Antigüedad: 16 años, 9 meses
Puntos: 3
se pueden pasar objetos como parametros?

hola todos, tengo una duda se pueden pasar objetos como parametros de funciones??, ahora bien, si es posible, el paso de objetos se hace necesariamente por referencia?? algun ejemplo que puedan postear o sugerencias/comentarios? saludos gracias
__________________
"puedo detenerme, pero no retroceder, tengo que avanzar..."
  #2 (permalink)  
Antiguo 01/04/2009, 10:29
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: se pueden pasar objetos como parametros?

Si se puede, aunque creo que es preferible por referencia para no crear una nueva instancia del objeto y que los cambios aplicados esten vigentes al salir de la funcion.

Código php:
Ver original
  1. $obj = new Objeto();
  2.  
  3. mi_funcion($obj);
  4.  
  5.  
  6. function mi_funcion(&$obj) {
  7.     // Aqui el codigo
  8. }

Para mi es mas util no pasar objetos como parametros, mejor declararlos con la directiva global donde lo necesite.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 01/04/2009, 10:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: se pueden pasar objetos como parametros?

En PHP4, se pasan por valor, en PHP5 se pasan por referencia, por ende si estas usando PHP5, ya no es necesario usar &.

Saludos.
  #4 (permalink)  
Antiguo 01/04/2009, 13:22
Avatar de gabrielflowers  
Fecha de Ingreso: julio-2007
Ubicación: Santa Cruz de la Sierra
Mensajes: 187
Antigüedad: 16 años, 9 meses
Puntos: 3
Respuesta: se pueden pasar objetos como parametros?

gracias a ambos por sus aportes, oye gatorv estas seguro de eso que dices de php5?? "en php5 se pasan los objetos por referencia por defecto" sin necesidad de explicitarlo con el & en la lista de parametros de la funcion??
__________________
"puedo detenerme, pero no retroceder, tengo que avanzar..."
  #5 (permalink)  
Antiguo 01/04/2009, 13:27
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: se pueden pasar objetos como parametros?

de hecho a partir de php5 se pasan por referencia (sólo confirmo lo que dice GatorV jeje).
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #6 (permalink)  
Antiguo 01/04/2009, 13:46
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: se pueden pasar objetos como parametros?

Lo raro es que esta caracteristica no se menciona en el manual de PHP:

Cita:
Iniciado por php.net
Note: El no utilizar el operador & causa que el objeto sea copiado en memoria. Si utilizamos $this en la clase, entonces actuaremos sobre la instancia actual de la clase. Las asignaciones sin & harán una copia de la instancia (por ejemplo, del objeto) y $this operará en la copia, lo que no siempre es el comportamiento deseado. Usualmente se desea utilizar una sola instancia, debido a razones de memoria y performance de la aplicación.
Mientras que se puede utilizar @ para silenciar cualquier error en el constructor utilizando @new, esto no funciona cuando utilizamos &new. Esto es una limitación del Zend Engine y por lo tanto, resultará en un error de sintáxis.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 01/04/2009, 14:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: se pueden pasar objetos como parametros?

http://www.php.net/manual/en/languag...references.php

Saludos.
  #8 (permalink)  
Antiguo 01/04/2009, 14:36
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: se pueden pasar objetos como parametros?

Gracias, GatorV, solo una precision, no se envia el objeto como referencia, de hecho, la variable contiene solamente el identificador (o apuntador) al objeto real, de manera que:

$obj1 = $obj2;

Por medio de ambas variables puedes acceder al mismo objeto.

Hoy aprendi otra cosa nueva
__________________
- León, Guanajuato
- GV-Foto
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 22:02.