我试图将变量从一个函数传递到另一个函数,然后传递给preg_replace_callback:
class Renderer
{
private static function make_query($q) {
...
while ($r = mysqli_fetch_array($c)) {
$data = $r['title'];
$finaltpl.=self::render($q[0]['template'],$data);
}
public static function render ($render,$d='') {
echo 'var D is:'.$d.'<br>';
$render = preg_replace_callback("/\[\[\[([^\]]*)\]\]\]/", function ($matches) use ($d) {
return 'var D inside is:'.$d.'<br>';
},$render
);
return $render;
}
但是在替换器之外它可以正常工作并且正确地回应var,但在其中只是将$ d显示为空字符串。问题出在哪里?