Extending PHP5.3 objects at runtime with lambda functions

PHP 5.3 will include lambda functions and closures.
One interesting thing that will come from this will be the ability to dynamically add a method onto a class at runtime, by combining lambas with the magic __call method..well, at least a hack to make something like this.

Effectively this is similar to traits/grafts, except you don’t have to define anything in a new class, you just extend the object itself when you come to use it.
You could also use a singleton within the Extensible class that keeps track of any added methods and propagates them to any other existing or new instances.

_methods, $name)) {                        call_user_func_array(array($this, $name), $args);                } else {                        throw new Exception(‘Unknown dynamic method ‘ . $name . ‘ called in class ‘ . get_class($this));                }        }        function __set($name, $value) {                if (is_callable($value)) {                        $this->_methods[$name] = $value;                }        }}class MyClass extends Extensible {        function test() {                echo ‘Non-dynamic method’;        }}$object = new MyClass();$object->test2 = function () {        echo ‘Dynamic method’;};// test() is defined within the static class definition$object->test();// test2() was created dynamically at runtime, but you call it just as// if it had been in the class definition$object->test2();?>

EDIT:
Incidentally this my first proper post sent via email. w00t.