preg_replace_callback()中的第二个参数

时间:2012-01-04 23:25:15

标签: php parameters preg-replace-callback

PHP中的函数preg_replace_callback()存在问题。我想调用一个需要两个参数的函数。

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匹配的matches数组

我希望你能帮助我!

1 个答案:

答案 0 :(得分:5)

按原样调用回调,您无法将其他参数传递给它。您可以创建一个简单的包装函数。对于PHP 5.3+,可以使用匿名函数轻松完成:

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

对于较旧的PHP版本,请创建一个像回调一样平常传递的常规函数​​。