这个简单的PHP函数包装器看起来是否合理?

时间:2009-07-23 15:55:25

标签: php wordpress wordpress-theming

成为PHP的新手,并且在这个“函数包装器”上花了很多时间,我想我会得到一些意见和一些反馈。如果可能的话,我想得到五条评论。

现在在你问之前,我有很多理由希望包装其他(WordPress)功能,主要是无忧无虑的升级。能够为每个函数定义设置自定义名称对我来说也很重要,因此$wrap array

但我离题了,这看起来是否可以接受且相对防弹?

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 );
}

...该函数将被调用为......

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

非常感谢!

修改

下面的每个混乱的sugeestion,这是将$ wrap声明为静态的正确方法吗?

static $wrap = array
( ...

1 个答案:

答案 0 :(得分:6)

嗯,你的基本目标似乎是疯狂的,但是你的基本目标是作为一个给定的,是的,这个功能看起来是一个很好的方法来实现它。

您应该将$wrap声明为static,以确保每次调用函数时都不会毫无意义地重新生成数组。

而且:

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

也可能很聪明。