2016-04-26 164 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"