成为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
( ...
答案 0 :(得分:6)
嗯,你的基本目标似乎是疯狂的,但是你的基本目标是作为一个给定的,是的,这个功能看起来是一个很好的方法来实现它。
您应该将$wrap
声明为static
,以确保每次调用函数时都不会毫无意义地重新生成数组。
而且:
if(!isset($wrap[$function]))
trigger_error('No underlying function known for ' . $function, E_USER_ERROR);
也可能很聪明。