Entrando a una zona difícil en php

Cuando serializamos un objeto obtenemos un string de un formato propio. Podemos investigas (siendo curiosos) cada una de las cosas que tiene dicho string. Una cosa curiosa es que esta guardado en el el nombre de la clase que debemos utilizar para desserializar el objeto:

< ?php $herring=serialize($obj); $vec=explode( ':',$herring); $nam=str_replace( "\"", '',$vec[2]); ?>

Entonces supongamos que creamos una clase “Universe” y forzamos que todas las clases sean extensión de universo, podemos definir un método que clone Universe como:

< ?php class Universe { function clone() { $herring=serialize($this); $vec=explode( ':',$herring); $nam=str_replace( "\"", '',$vec[2]); $ret=new $nam; return $ret; }} //Entonces: $obj=new Something(); //Algo extensión de universo !! $other=$obj->clone();
?>

Se obtiene un objeto nuevo de la clase “Something” creado de la misma forma que llamando a New, se invoca al constructor etc. Distintas aplicaciones del uso de la clase universal permiten varios manejos curiosos de objetos en PHP, el unico limite es la imaginacion!

Fuente: Documento Generación de web sites dinámicos usando PHP