Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/05/2014, 15:39
Avatar de Italico76
Italico76
 
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Exclamación PHP hardcodea __construct() y clone() .. por que ?

Haciendo experimentos... acabo de caer en cuentas de porque perdi como 3 horas hoy tratando de crea un objeto como clase derivada en runtime pero desde el constructor y luego con clone() y siempre con resultados inesperados

Código PHP:
Ver original
  1. <?php
  2.  
  3. Class Foo
  4. {
  5.     public $bar="Bar"; 
  6.    
  7.     public function __construct()
  8.     {
  9.         // aca no funciona, esta hardcodeada la devolucion a $this
  10.         return new StdClass;
  11.     }
  12.    
  13.     public function __clone()
  14.     {
  15.         // aca no funciona, esta hardcodeada la devolucion a $this
  16.         return new StdClass;
  17.     }
  18.    
  19.     // aca si
  20.     public function getInstance()
  21.     {      
  22.         return new StdClass;
  23.     }
  24.    
  25. }
  26.  
  27. $foo = new Foo;
  28. var_dump ($foo);
  29. var_dump(clone $foo);
  30. var_dump ($foo->getInstance());

Arroja:

Cita:
Foo Object
(
[bar] => Bar
)
Foo Object
(
[bar] => Bar
)
stdClass Object
(
)
Alguna idea de porque me quieren complicar la vida ?
__________________
Salu2!