0

preg_replace_callback()PHPの関数に問題があります。2 つのパラメーターを必要とする関数を呼び出したい。

private function parse_variable_array($a, $b)
{
    return $a * $b;
}

インターネットで、次のコードを見つけました。

preg_replace_callback("/regexcode/", call_user_func_array(array($this, "foo"), array($foo, $bar)), $subject);

しかし、関数 foo では、preg_replace_callback で通常行われる match 配列を使用できません。

あなたが私を助けてくれることを願っています!

4

1 に答える 1

5

コールバックはそのまま呼び出され、追加のパラメーターを渡すことはできません。ただし、単純なラッパー関数を作成できます。PHP 5.3 以降では、無名関数を使用して簡単に実行できます。

preg_replace_callback(..., function ($match) {
    return parse_variable_array($match, 42);
}, ...);

古いバージョンの PHP では、コールバックとして通常どおり渡す通常の関数を作成します。

于 2012-01-04T23:28:48.437 に答える