rendered paste body<?phpinterface Morphable { public function morph($class);} class Morpher implements Morphable { private static $pointers = array(); public static function instance($class = 'Morpher', &$var) { $var = new $class(); self::$pointers[] =& $var; } public function morph($class) { if( ! class_exists($class)) throw new Exception("Couldn't morph. Class $class doesn't exist."); $index = array_search($this, self::$pointers); self::$pointers[$index] = new $class; }}class A extends Morpher { }class B extends Morpher { }Morpher::instance('A', $m);var_dump( $m );$m->morph('B');var_dump( $m );show_source(__FILE__);?> object(A)#1 (0) { } object(B)#2 (0) { }