首页 > 解决方案 > 为什么配置静态变量在我的情况下不起作用?

问题描述

我在 Codeigniter 4 中使用自定义配置文件。我通过调用方法填充其静态变量,load_values()然后在 BaseController 中使用这些静态变量。它在 BaseController 中工作正常,但是当我尝试在从 BaseController 扩展的 AdminController 中使用这些相同的变量时,它的变量显示为空。我不会将load_values()AdminController 中的方法称为从 BaseController 扩展而来的方法。以下是详细信息。

为什么配置文件变量在 AdminController 中显示为空?我试图调试和观察变量值,但无法追踪根本原因。

基础控制器:

$this->config = config('My_config');
// Following load_values() method loads users names & populates 
//other static variables (eg: $users_array) of config class 'My_config'. 
//I dont call this method again in AdminController
$this->config::load_values();  
echo $this->config::$users_array[0];  // Prints User Name 

AdminController 扩展 BaseController:

$this->config = config('My_config');
echo $this->config::$users_array[0]; // Empty 

$this->config::$users_array[0];在 BaseController 中打印值,但不在 AdminController 中打印任何内容。请指教。

标签: phpscopestaticstatic-methodscodeigniter-4

解决方案


推荐阅读