且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

可以将带有修饰符/e的preg_place()转换为preg_place_callback()

更新时间:2023-02-19 12:52:24

您已经知道,您的问题在于您的匿名函数中的变量超出了作用域,并且由于您不知道要替换哪个变量,因此无法将它们传递给函数,因此您必须使用global关键字,例如

$uri = "module/page/{#page}";
$page = 3;

$uri_to_call = $uri_rule = preg_replace_callback("/{#([A-Za-z_]+)}/", function($m){
    global ${$m[1]};
    return ${$m[1]};
});