preg_replace_callback()中的第二个参数

Rem*_*ker 0 php parameters preg-replace-callback

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

private function parse_variable_array($a, $b)
{
    return $a * $b;
}
Run Code Online (Sandbox Code Playgroud)

在互联网上我找到了这段代码:

preg_replace_callback("/regexcode/", call_user_func_array(array($this, "foo"), array($foo, $bar)), $subject);
Run Code Online (Sandbox Code Playgroud)

但是在函数foo中我不能使用通常与preg_replace_callback匹配的matches数组

我希望你能帮帮我!

dec*_*eze 5

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

preg_replace_callback(..., function ($match) {
    return parse_variable_array($match, 42);
}, ...);
Run Code Online (Sandbox Code Playgroud)

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

  • 您还可以为匿名函数声明其他参数:`function($ matches)use($ otherVar){...}`这可能有所帮助(以及避免`global`). (2认同)