Nice write-up. No worries about not RTFM…I think we all get bitten by that one every now and again :)

One additional note on what you can pass to call_user_func. You can also pass in an anonymous function, which is to say, you can pass in a lambda or closure.