我尝试下面的代码:有什么语法获得create_function函数作为回调的工作:
$for_callback=create_function('$match','return $GLOBALS[\'replacements\'][$match[1]];');
$result = preg_replace_callback($regex, '$for_callback', $string);
变量$GLOBALS['replacements']
是动态生成在调用此函数之前。
我得到一个错误消息像
Warning: preg_replace_callback() [function.preg-replace-callback]: Requires argument 2, '$for_callback', to be a valid callback in...
创建的函数和回调都是新的我。这是由nickb在My question about preg_replace转给preg_replace_callback
给我的一些代码增长出来的。
我想要做的是将该答案中的代码封装到一个函数中,并且遇到了范围错误,从而避免重新定义函数。 (升级到PHP 5.3+是我目前的远程可选项)。
我如何得到这个工作?
''$ match''应该只是'$ match',或者如果你的货是邪教编程心情,''$匹配“'。同样的其他引用变量。 –
我认为看起来很奇怪,但是这里是一个来自php.net的剪辑:$ newfunc = create_function('$ a,$ b','return'ln($ a)+ ln($ b)=“.log($ a * $ b);');.它看起来像PHP代码。实际的错误不在我的'create_fuction()'中,而是在我的'preg_replace_callback()'中,在那里我留下了他们不属于的函数变量的单引号。 – TecBrat