我在会话中存储用户语言,然后像这样加载语言文件:
$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'] 数组中。