【问题标题】:Global session variable全局会话变量
【发布时间】:2012-04-17 13:24:29
【问题描述】:

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

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

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

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

我该怎么做?

【问题讨论】:

    标签: php codeigniter session


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      但是,这真的有问题吗?

      【讨论】:

      • 好吧,我没说这是个大问题,但是如果我必须加载可以全局定义的东西,那就太烦人了。不是吗?
      【解决方案3】:

      您可以在 autoload.php 文件中放置一个助手;)。位于 /application/config/autoload.php

      因此在助手中定义变量,并将助手放在 autoload['helper'] 数组中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-02-14
        • 2013-04-27
        • 1970-01-01
        • 1970-01-01
        • 2021-03-01
        • 2014-03-20
        • 2012-06-09
        相关资源
        最近更新 更多