Does this simple PHP function wrapper look sensible for its purpose?

Being new to PHP, and with a lot riding on this “function wrapper”, I thought I’d get a few opinions and a little feedback. I’d like to get about five comments, if possible.

Now before you ask, I have many reasons for wanting to wrap other (WordPress) functions, the primary being hassle-free upgrading. It was also important for me to be able to set a custom name for each function definition, hence the $wrap array.

Read More

But I digress, does this look acceptable and relatively bulletproof?

function core_oo( $function )
{
    $args = array_slice( func_get_args(), 1 );
    $wrap = array
    (
        'comment' => 'the_comment',
        'comments' => 'have_comments',
        'post' => 'the_post',
        'posts' => 'have_posts'
    );
    return call_user_func_array( $wrap[ $function ], $args );
}

… and the function will be called like…

core_oo( 'post', 'arg1', 'arg2' );

Many thanks!

EDIT:

Per chaos’s sugeestion below, is this the right way to declare $wrap as static?

static $wrap = array
( ...

Related posts

Leave a Reply

1 comment

  1. Well, your fundamental aim seems like madness, but with your fundamental aim taken as a given, yes, that function looks like a fine way to accomplish it.

    You should declare $wrap as static to ensure that you’re not pointlessly regenerating the array every time the function is called, though.

    And this:

    if(!isset($wrap[$function]))
        trigger_error('No underlying function known for ' . $function, E_USER_ERROR);
    

    would probably be smart too.