全局会话变量


Global session variable

我在会话中存储用户语言,然后像这样加载语言文件:

$language = $this->session->userdata('language');
$this->lang->load('form_validation', $language);

但是这很烦人,当我必须在每个控制器中加载上述$language变量时,如果它是一个全局变量会更好,所以我可以只使用:

$this->lang->load('form_validation', $language);
  • 其中$language变量是全局变量。

我该怎么做?

如果你真的想要一个单行,那么为什么不直接做

$this->lang->load('form_validation', $this->session->userdata('language'));

对于一般的全局变量,不必要地创建它们通常不是一个好的做法。 原因是全局变量本质上可以从任何地方访问,因此可以从任何地方更新它们,这可能会导致难以找到错误

我认为最好的方法(或至少比使用全局变量更好)是在代码中的某个地方定义一个辅助函数(我不知道它会在 CodeIgniter 中的位置)为您加载语言文件。

但是,这真的是一个问题吗?

您可以在自动加载.php文件;)中放置一个帮助程序。位于/application/config/autoload.php

从而在帮助程序中定义变量,并将帮助程序放在 autoload['helper'] 数组中。