PHP中的函数动态替换


Dynamically Replacing by a Function in PHP

是否有一种方法可以动态地替换一个函数,类似于.replace在JavaScript中的工作方式?一个类似的用例是,我有一个带有数字的字符串,我想通过一个函数传递这些数字:

"1 2 3" => "2 4 6"  (x2)

当前的preg_replace函数似乎不支持参数函数

作为参考,在JavaScript中可以这样实现:

var str = "1 2 3";
str.replace(/'d+/g, function(num){
    return +num * 2;
});

你应该使用preg_replace_callback()有回调正则表达式匹配。您可以在回调函数中乘以匹配的数字。

$newStr = preg_replace_callback("/'d+/", function($matches){
    return $matches[0] * 2;
}, $str); 

检查demo的结果