Codeigniter全局变量

时间:2012-01-05 15:59:40

标签: codeigniter

我在应用程序中反复使用了一系列语言名称。什么是最好的方法。我按照这里的例子尝试了这个库。

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

    class Config extends CI_Controller
    {
        public $languages = '';
        public $languages_en = '';

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

            $this->languages = array('ar', 'cn', 'fr', 'de', 'it', 'jp', 'kr', 'pl', 'pt', 'ru', 'es', 'sk');

            $this->languages_en = array('ar', 'cn', 'fr', 'de', 'it', 'jp', 'kr', 'pl', 'pt', 'ru', 'es', 'sk', 'en');  
        }
    }
?>

然后我尝试加载库并调用变量。但是我得到一个错误,我不允许我请求的操作。

这是最好的方法吗?或者是否有更好的方法在CI中创建全局变量?顺便问一下,我班的名字是个问题吗?

1 个答案:

答案 0 :(得分:1)

是的,Config不是允许的类名,因为CI已经有Config类。

但是,我会创建一个配置文件来保存这些数组,并在需要时加载该文件。

文档:http://ellislab.com/codeigniter/user_guide/libraries/config.html

因此,在您的配置文件/application/config/languages.php中,您可以这样:

$config['languages'] = array('ar', 'cn', 'fr', 'de', 'it', 'jp', 'kr', 'pl', 'pt', 'ru', 'es', 'sk');

$config['languages_en'] = array('ar', 'cn', 'fr', 'de', 'it', 'jp', 'kr', 'pl', 'pt', 'ru', 'es', 'sk', 'en');

然后,在您的控制器中,您可以这样做:

$this->config->load('languages');
$lang = $this->config->item('languages');
$lang_en = $this->config->item('languages_en');
相关问题