2016-04-26 17 views
0

私はかなりの研究を行っていますが、ほとんどのソースは非常に長い日付ですので、どうすればよいのか分かりません。CI 3.xCodeigniterグローバル変数を作成してアクセスします

私はすべてのユーザーごとに複製され、他のすべてのインスタンスとは独立して実行されるアプリケーションを持っています。 。のようにほとんどどこでも

*in application/config/config.php* 

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

は、私が今変数をアクセスもできます。すべてのインスタンスは計算費用の方法で異なる可能性があり、グローバル変数の出番つまり

私はqucikly以下のソリューションを実装していますこの:

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

はしかし、私はCIに新しいですし、私はこれを行うための正しい方法がなければならないことを信じて、それは私によって提供された例はありません。

どのような拍手や指導をいただければ幸いです。

答えて

1

計算を処理する方法についてのデフォルトの説明を提供することを意図している場合、あなたが行ったことは完全に受け入れられます。この方法で変数にアクセスすることをお勧めします。これに

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

利点項目が存在しない場合item('expenses_calculation')はNULLを返すということです。

しかし、$this->config->config['expenses_calculation'];が存在しない場合、「未定義インデックス」PHPエラーがスローされます。

2

1.定義する定数

アプリケーション/設定/ 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" 
関連する問題