请问一下$_G['cache']['usergroups']这个参数怎么才能拿到 New
我做了一个测试只有在访问帖子详情的时候$_G['cache']['usergroups']这个才会有值,当我在其他地方去调用这个值,或者直接把/source/module/forum/forum_viewthread.php这个里面的代码复制一遍在同目录下新建一个文件去访问这个值也是null,这个是什么问题我知道答案 回答被采纳将会获得1 贡献 已有1人回答 loadcache('usergroups'); 在Discuz!中,`$_G` 是一个全局变量,包含了当前请求的许多上下文信息。这个变量在Discuz!的核心初始化过程中被填充,通常在访问论坛的某些页面(如帖子详情页)时会被自动加载。
如果你在其他地方调用 `$_G` 时发现它为 `null`,可能是因为你没有正确初始化Discuz!的核心环境。要解决这个问题,你需要确保在调用 `$_G` 之前,Discuz!的核心环境已经被正确加载。
### 解决方法
1. **确保加载核心文件**:
在你新建的文件中,确保加载了Discuz!的核心文件。通常,你需要在文件的开头引入 `source/class/class_core.php` 文件,并调用 `C::app()->init()` 来初始化Discuz!的核心环境。
require_once './source/class/class_core.php';
C::app()->init();
2. **检查文件路径**:
确保你引入的路径是正确的。如果你在子目录中创建文件,可能需要调整路径。
3. **确保在正确的上下文中使用**:
`$_G` 变量在Discuz!的某些特定上下文中才会被填充。如果你在自定义的脚本中使用它,确保你模拟了正确的上下文环境。
### 示例代码
假设你在 `/source/module/forum/` 目录下新建了一个文件 `my_custom_file.php`,你可以这样写:
<?php
// 引入Discuz!核心文件
require_once '../../source/class/class_core.php';
// 初始化Discuz!核心环境
C::app()->init();
// 现在你可以访问 $_G 变量了
print_r($_G);
?>
### 注意事项
- **权限问题**:确保你的文件有足够的权限来访问Discuz!的核心文件。
- **上下文环境**:如果你在自定义的脚本中使用 `$_G`,确保你模拟了正确的上下文环境,否则某些变量可能不会被正确填充。
通过以上步骤,你应该能够在自定义的文件中正确访问 `$_G` 变量。如果还有其他问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]