将global作为参数传递给用户定义的函数

时间:2018-01-08 12:09:51

标签: php

阅读将变量传递给用户定义的函数,并说它可以使用' global'来访问函数外部的变量。但通过对SO的回答,Matteo Tassinari建议"完全避免使用全局变量而更喜欢传递参数"

以下是我的索引

<?php

$registry = new Registry(); <- need to pass this variable

$router->map('GET', '/', function ($controller = 'Home', $action = 'index') {

    if (method_exists($controller, $action)) {
        $controller = new $controller();
        $controller->$action();
    } else {
        echo 'missing';
    }
});

我需要访问变量$registry,这可以通过向其追加全局来轻松完成,但我希望避免它并将其作为参数传递。

如何将$registry作为参数传递?

1 个答案:

答案 0 :(得分:1)

您可以尝试将use ($registry)添加到该功能

$router->map('GET', '/', function ($controller = 'Home', $action = 'index') use($registry) {