2016-04-26 219 views
0

我已经做了相当多的研究,但是大多数来源的日期很长,所以我有点困惑,至于如何在CI 3.x中做到这一点。Codeigniter创建和访问全局变量

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

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

*in application/config/config.php* 

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

我现在可以存取权限的变量几乎无处不像这样的:

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

不过,我是新来CI,我认为,必须有这样做的正确的方式,它是不是由我提供的例子。

任何hlep或指导,非常感谢。

回答

1

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

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

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

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

2

1.定义常量

的application/config/constants.php

define('EXPENSES_CALCULATION', 'monthly'); 

无处不在,你需要访问此:

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

2 。定义变量i n您的控制器

控制器:

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"