我在应用程序中反复使用了一系列语言名称。什么是最好的方法。我按照这里的例子尝试了这个库。
<?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中创建全局变量?顺便问一下,我班的名字是个问题吗?
答案 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');