php - 将全局变量传递给调度路由器库php
问题描述
所以我正在使用noodlehaus / dispatch进行我的网站路由。我想从主范围传递一些变量,例如$currentLang
to 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();
请帮我解决一下这个。谢谢。
解决方案
添加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 ])
);
});
推荐阅读
- asp.net-core - NetCore:如何管理从主应用程序到子域的请求?
- typescript - 在 vue3 中使用来自 headless ui 的 Modal
- google-apps-script - Google Apps 脚本编辑器 - 是否可以详细说明错误?
- java - 如何在java中获得直接键盘输入
- java - intellij idea buddy 插件 spring data jpa + rest 存储库
- java - 在 SharedPreferences 中保存模型类对象
- php - 如何有条件地验证 Laravel 5 中的请求字段?
- postgresql - PostgreSql - 从日期中提取月份+年份
- node.js - req.flash() 结果 [ ]
- typescript - 使用 jsPlumb 和 @jsplumb/browser-ui 与第三方库时,Angular SSR 中获取文档未定义错误