>>> $foo = { >>> 'bar' : function(){ >>> echo 'baz'; >>> } >>> }; >>> >>> $foo->bar(); >> >> I guess it's not yet too late to surpass Perl in the front of obscurity... > > Since the stuff to the right of the assignment operator (`:` in this case) is > valid PHP, I don't see why this wouldn't be allowed if we adopt the {} > syntax. It's not much different from this, which is currently valid: > > $foo = (object)array( > 'bar' => function () { > echo 'baz'; > } > };
Matthew pointed out to me (on IRC) that this actually doesn't work in current PHP (you can't call an object property as a closure without one of the proxy functions like call_user_function_array()). My mistake. Note that this shouldn't affect the RFC, and this behaviour should be addressed as a separate issue if people think it should work (FWIW, I do obviously think this should work, but that's a separate thread, please). S -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php