Foros del Web » Programando para Internet » PHP »

PHP OO Clonar Objeto nueva instancia

Estas en el tema de Clonar Objeto nueva instancia en el foro de PHP en Foros del Web. Amigos tiempo sin preguntarles, necesito un favor urgente, alguno sabe como puedo copiar un objeto a otro pero este nuevo objeto no debe tener la ...
  #1 (permalink)  
Antiguo 28/04/2012, 09:21
Avatar de miguec04  
Fecha de Ingreso: agosto-2008
Ubicación: Cimitarra, Santander
Mensajes: 378
Antigüedad: 16 años, 4 meses
Puntos: 15
Información Clonar Objeto nueva instancia

Amigos tiempo sin preguntarles, necesito un favor urgente, alguno sabe como puedo copiar un objeto a otro pero este nuevo objeto no debe tener la identidad del que se copia, me explico

si utilizo lo siguiente

$objeto = new NombreObjeto();
$objeto->setNombreParaTodasLasCopias('nombre');
$objeto->setDatoUnicoPorObjeto('1');

y hago lo siguiente

$objeto2 = clone($objeto);
$objeto2->setDatoUnicoPorObjeto('2');

al modificar los atributos de $objeto2 los modifica al objeto uno yo no quiero esto, yo quiero que el objeto que se clona tome los datos que ya tiene el primero PERO si modifico algún atributo en su clon no me lo modifique a los otros

como le doy una nueva identidad a estos objetos clonados?

Muchas gracias, espero haberme dado a entender.
__________________
Desoftc Technology - Miguel Carmona
Creaciones Inteligentes - Cimitarra Colombia
[email protected]
http://www.desoftc.com.co
  #2 (permalink)  
Antiguo 28/04/2012, 09:32
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Clonar Objeto nueva instancia

Como lo estas clonando ?, debería ser:

Código PHP:
Ver original
  1. $foo = new Foo();
  2. $bar = clone $foo;
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 28/04/2012, 09:57
Avatar de miguec04  
Fecha de Ingreso: agosto-2008
Ubicación: Cimitarra, Santander
Mensajes: 378
Antigüedad: 16 años, 4 meses
Puntos: 15
Respuesta: Clonar Objeto nueva instancia

hermano, así tampoco sirvió ya había hecho ese intento y no encontré nada en el manual de php
__________________
Desoftc Technology - Miguel Carmona
Creaciones Inteligentes - Cimitarra Colombia
[email protected]
http://www.desoftc.com.co
  #4 (permalink)  
Antiguo 28/04/2012, 12:47
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años, 8 meses
Puntos: 97
Respuesta: Clonar Objeto nueva instancia

Quiza te digo una tonteria pero, has probado de hacer un serialize de tu objeto y luego extrarlo en otra variable?
  #5 (permalink)  
Antiguo 28/04/2012, 15:40
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Clonar Objeto nueva instancia

Debería funcionar correctamente, postea la clase que estas intentando clonar.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #6 (permalink)  
Antiguo 29/04/2012, 13:37
Avatar de miguec04  
Fecha de Ingreso: agosto-2008
Ubicación: Cimitarra, Santander
Mensajes: 378
Antigüedad: 16 años, 4 meses
Puntos: 15
Respuesta: Clonar Objeto nueva instancia

gracias @oscartt67 serialize y funciono muy bien muchas gracias parcerito.

lo probe de dos formas y me funcionaron muy bien aqui dejo los ejemplos

Código PHP:
Ver original
  1. $nodoSerializado                            = serialize($nodos);
  2.  
  3. $procesos           = new NodoNota();
  4. $procesos           = clone unserialize($nodoSerializado);

y me funciono de esta otra forma

Código PHP:
Ver original
  1. $nodoSerializado        = serialize($nodos);
  2. $procesos           = new NodoNota();
  3. $procesos           = unserialize($nodoSerializado);

gracias por su colaboración
__________________
Desoftc Technology - Miguel Carmona
Creaciones Inteligentes - Cimitarra Colombia
[email protected]
http://www.desoftc.com.co

Etiquetas: identidad, clon
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 20:49.