2

PHP の初心者であり、この「関数ラッパー」に多くのことを依存しているため、いくつかの意見とフィードバックを得ることができると考えていました。できれば5つほどコメントをいただければと思います。

質問する前に、私が他の (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' );

どうもありがとう!

編集:

以下のカオスの提案によると、これは $wrap を静的として宣言する正しい方法ですか?

static $wrap = array
( ...
4

1 に答える 1

6

ええと、あなたの根本的な目的は狂気のように思えますが、あなたの根本的な目的が与えられたものであるとすれば、そうです、その機能はそれを達成するための優れた方法のように見えます.

ただし、関数が呼び出されるたびに無意味に配列を再生成しないように$wrapasを宣言する必要があります。static

この:

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

おそらく賢いでしょう。

于 2009-07-23T15:58:41.547 に答える