Написал код, но почему не передают переменую use в чем могут быть? PHP: <?php /** * @var \core\Router $router * @var \core\Request $request * @var \core\ui\Page $page */ use plugin\classes\Package; use plugin\classes\Plugin; var_dump($router); // тут работает /** * @param string $name * @return false|Plugin */ function plugin(string $name) use ($router) { static $package; if(!$package) { $package = new Package([ 'dir' => __DIR__ . '/components' ]); $package->init(); } var_dump($router); // тут не работает /** * @var Plugin $component */ if(!$component = $package->findComponent($name)) { return false; } return $component; } Ошибка нет но место белая страница как будто переменая router и лдругих не видит, но когда пишеш не в функции то работает.
его передали уже через вызовд $router = new Router() в класс а потом как подключил к файл то extract() вызвал. к примеру делать $plugin = function(string $name) use ($router) так работает а если так function plugin (string $name) use ($router) то не работет чем в разницу?
Потому что вот это: PHP: $plugin = function(string $name) use ($router) анонимная функция, а Код (Text): function plugin (string $name) use ($router) не анонимная