Ya, ...
Lo anterior tampoco funciona,
$this es una propiedad readonly que solo devuelve un puntero al espacio local.
En otros lenguajes como Javascritpt o Python se puede sobre-escribir una funcion / metodo / clase pero en PHP no, si se pudiera seria una salida pero como dice @pateketrueke para eso hay un patron que lo resuelve.
Curiosamente... esto tampoco funciona, no da error ni funciona:
Código PHP:
Ver originalClass Bar
{ }
Class Foo
{
public function __construct()
{
global $foo;
$foo = new Bar;
}
}
$foo = new Foo;
debug ($foo);
debug ($foo); // tampoco ahora :)
Esperaria que la segunda vez al menos fuera de tipo 'Bar' pero no... sigue siendo 'Foo object'