用 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