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<?php
Class Foo
{
public $bar="Bar";
public function __construct()
{
// aca no funciona, esta hardcodeada la devolucion a $this
return new StdClass;
}
public function __clone()
{
// aca no funciona, esta hardcodeada la devolucion a $this
return new StdClass;
}
// aca si
public function getInstance()
{
return new StdClass;
}
}
$foo = new Foo;
Arroja:
Cita: Foo Object
(
[bar] => Bar
)
Foo Object
(
[bar] => Bar
)
stdClass Object
(
)
Alguna idea de porque me quieren complicar la vida ?