首页 > 解决方案 > 将全局变量传递给调度路由器库php

问题描述

所以我正在使用noodlehaus / dispatch进行我的网站路由。我想从主范围传递一些变量,例如$currentLangto route(...),但出现此错误:

注意:未定义的变量:第 18 行 C:\xampp\htdocs\_PERSONAL\newSite\index.php 中的 currentLang

这是我的代码的一部分。

require './functions/dispatch.php';

$currentLang = 'en';

route('GET', '/resume', function () {
    $data['lang'] = $currentLang;

    return response(
        phtml(__DIR__.'/views/resume', ['data' => $data ])
    );
});

dispatch();

请帮我解决一下这个。谢谢。

标签: phpglobal-variablesrouterdispatch

解决方案


添加global $data;解决了问题:

    require './functions/dispatch.php';

    $currentLang = 'en';

    route('GET', '/resume', function () {
        global $currentLang;
        $data['resume'] = json_decode(
            file_get_contents("assets/json/resume-".$currentLang.".json"), true
        );

        return response(
            phtml(__DIR__.'/views/resume', ['data' => $data ])
        );
    });

或者像这样:

    require './functions/dispatch.php';

    $currentLang = 'en';

    route('GET', '/resume', function () use ($currentLang){
        $data['resume'] = json_decode(
            file_get_contents("assets/json/resume-".$currentLang.".json"), true
        );

        return response(
            phtml(__DIR__.'/views/resume', ['data' => $data ])
        );
    });

推荐阅读