0

我对preg_replace_callback()PHP 中的函数有疑问。我想调用一个需要两个参数的函数。

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 一起使用的匹配数组

我希望你能帮帮我!

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 回答