CodeIgniter 定义“全局变量-global variable”,可以在所有controller,model和view中使用


本文抄自http://www.cnblogs.com/webu/archive/2012/11/20/2779999.html

 

   第一次正儿八经用CodeIgniter框架做项目,结果不会定义全局变量,只能在一个controller里定义一个public varable,每个函数调用,别的controller里还需要重新定义,view里还用不了,必须先传值。

       经过研究,在CI中使用全局变量需要自定义Library的形式定义全局变量,这里我介绍一个用config里配置的方法

 

一:library/globals.php  

<?php if  ( ! defined( 'BASEPATH' )) exit ( 'No direct script access allowed' );
                          
class  Globals
{
                              
     function  __construct( $config  = array () ){
         foreach  ( $config  as  $key  => $value ) {
             $data [ $key ] = $value ;
         }
                          
         $CI  =& get_instance(); //这一行必须加
                          
         $CI ->load->vars( $data );
     }
}

 

二:/config/globals.php <-名字必须和library一致,定义具体变量

<?php if  ( ! defined( 'BASEPATH' )) exit ( 'No direct script access allowed' );
                 
$config [ 'globals_text' ] = "test text" ;
                 
$config [ 'globals_text1' ] = "test text11" ;

 

 

三:/config/autoload <-配置自动加载项,加载global library

/*
| -------------------------------------------------------------------
|  Auto-load Libraries
| -------------------------------------------------------------------
| These are the classes located in the system/libraries folder
| or in your application/libraries folder.
|
| Prototype:
|
|   $autoload['libraries'] = array('database', 'session', 'xmlrpc');
*/
       
$autoload [ 'libraries' ] = array ( 'globals' );

 

 

现在定义了两个变量globals_text和globals_text1就可以在所有MVC中使用了


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM