好的,我想要实现以下功能:
preg_replace("/\{([a-zA-Z0-9_]+)\}/", $templateVariables[$1], $templateString);
现在我知道这样做是不可能的,但我想知道是否有一种方法可以实现这个功能。因为我尝试使用create_function,但$templateVariables是一个局部变量,无法从create_function中访问,所以我陷入了困境。我不想手动找到匹配项并替换它们,再找到它们以进行替换,这似乎非常低效。所以是否有办法可以从匿名函数中访问局部变量,或者是否有其他好的建议。
谢谢。
preg_replace_callback("pattern","someFunction","subject");
,然后有一个单独的function someFunction ($matches) {...}
,但例如,您无法执行preg_replace_callback("pattern","someFunction($someVar)","subject");
,我的问题是是否有方法可以做到这一点。好吧,这实际上是OP的问题。 我想我的问题是...您可以使用“use”将变量传递给匿名函数,如此答案所示。但是,例如,您是否可以执行preg_replace_callback("pattern","someFunction" use ($someVar) ,"subject");
? - CrayonViolentpreg_replace_callback("pattern",function($m) use ($someVar) { call_some_other_function($someVar, $m); },"subject");
而且,不,原问题是“我能否使用匹配作为数组索引进行 preg_replace” - Petahuse
使用的文档,我可以看一下?我只是想看看我错过了什么。 - csteifel