好了,所以我试图做一些事情,像这样:PHP的Preg更换更换阵列
preg_replace("/\{([a-zA-Z0-9_]+)\}/", $templateVariables[$1], $templateString);
现在我知道这是不可能的喜欢它,但是我想知道是否有一个方法来做到这一点,因为我试图使用create_function,但是$ templateVariables是它所在函数的局部变量,所以我不能从create_function中访问$ templateVariables,所以我有点卡在这里。我宁愿不必找到匹配什么来替换它们,然后再次找到它们来取代,这似乎是可怕的低效率。那么,无论如何,我可以从一个匿名函数中获取局部变量,或者是否有任何人有任何好的建议。
谢谢。
非常漂亮的把戏。有没有办法做到这一点与命名回调函数? – 2011-12-23 02:07:30
定义回调函数,并将其名称作为字符串放在那里。 – hakre 2011-12-23 02:25:57
@hakre:我不明白。我知道你可以做'preg_replace_callback(“pattern”,“someFunction”,“subject”);'然后有一个单独的'function someFunction($ matches){...}'但是例如你不能'preg_replace_callback(“模式“,”someFunction($ someVar)“,”主题“);'我的问题是,如果有办法做到这一点。那么,这真是OP的问题。我想我的问题是...你可以通过使用“use”将var传递给匿名函数,如此答案中所示。但你可以做例如'preg_replace_callback(“pattern”,“someFunction”use($ someVar),“subject”);' – 2011-12-23 02:30:17