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数组
我希望你能帮助我!
答案 0 :(得分:5)
按原样调用回调,您无法将其他参数传递给它。您可以创建一个简单的包装函数。对于PHP 5.3+,可以使用匿名函数轻松完成:
preg_replace_callback(..., function ($match) {
return parse_variable_array($match, 42);
}, ...);
对于较旧的PHP版本,请创建一个像回调一样平常传递的常规函数。