Codeigniter创建和访问全局变量

时间:2016-04-26 12:50:10

标签: codeigniter codeigniter-3

我已经做了很多研究,但是大部分资料来源的日期都很长,所以我对如何在CI 3.x中做到这一点感到困惑。

我有一个为每个用户克隆的应用程序,并独立于所有其他实例运行。每个实例的计算费用和全局变量的来源可能不同。

我已经实施了以下解决方案:

*in application/config/config.php*

$config['expenses_calculation'] = 'monthly';

我现在几乎可以在任何地方访问变量:

$this->config->config['expenses_calculation'];

但是,我是CI的新手,我相信必须有正确的方法来做这件事,而不是我提供的例子。

非常感谢任何hlep或指导。

2 个答案:

答案 0 :(得分:2)

<强> 1。定义常量

应用/配置/ constants.php

define('EXPENSES_CALCULATION', 'monthly');

无处不在,您需要访问它:

print EXPENSES_CALCULATION; // output will be: "monthly"

<强> 2。在控制器中定义变量

控制器:

class Page extends CI_Controller
{
    private $expenses_calculation = "";

    function __construct()
    {
        parent::__construct();

        $this->expenses_calculation = "monthly"; // you can fetch anything from your database or you do anything what you want with this variable
    }
}

控制器的构造函数总是在其他任何东西之前运行(在控制器中)。因此,您可以向该“全局”变量添加任何值,并且您可以从控制器中轻松访问此值。

print $this->expenses_calculation; // output will be: "monthly"

答案 1 :(得分:1)

如果您打算提供默认\描述如何处理计算,那么您所做的完全可以接受。我建议你以这种方式访问​​变量。

$calc_method = $this->config->item('expenses_calculation');

这样做的好处是,如果项目不存在,item('expenses_calculation')将返回NULL。

但如果$this->config->config['expenses_calculation'];不存在,则会抛出“未定义的索引”PHP错误。