在codeigniter中声明类级变量

Sye*_*yed 1 variables codeigniter declaration

我是CI的新手,我想做的是拥有一个类级变量(例如是一个数组).但看起来CI尽管吹嘘不高,却不支持这一功能.用户指南中未提及任何相关内容.有一个名为私有函数和变量的标题,但文本似乎对变量保持沉默.

我希望有类似的东西:

class OrderStats extends CI_Controller {

protected $arr_CoreCountry = ('0'=>'uk', '1'=>'us'); 

public function __construct()
   {

        parent::__construct();
        // Your own constructor code

   }

   public function index()
{

    $this->load->model('orders', '', TRUE);
    //$data['result'] = $this->Testmodel->get_entries();
    $data['result'] = $this->Testmodel->get_reports();
    $this->load->view('test', $data);

}

public function getOrderStats()
{       
            $this->load->model('Orderstatsmodel', '', TRUE);

            //$data['result'] = $this->Testmodel->get_entries();
            foreach ($arr_CoreCountry as $key => $value)
            {
                $data['result'] = $this->Orderstatsmodel->get_orderStats($key);
            }
  //                $data['result'] = $this->Orderstatsmodel->get_orderStats(0);
            $this->load->view('orderstats', $data);

}
Run Code Online (Sandbox Code Playgroud)

请记住,当我在这篇文章中声明$ arr_CoreCountry变量时,我经常会看到语法错误消息.当我把它放在任何函数内部时,当然,它超出了范围,我不断得到一个错误消息,$ arr_CoreCountry是一个未定义的变量.所以问题是我在哪里定义它?

由于来自codeigniter的这个消息,因为我的一半时间被浪费了,所以期待快速响应.

Ros*_*oss 9

这应该工作:

class OrderStats扩展CI_Controller {

    protected $arr_CoreCountry = array('0'=>'uk', '1'=>'us'); 

    public function getOrderStats()
    {       
        $this->load->model('Orderstatsmodel', '', TRUE);

        //$data['result'] = $this->Testmodel->get_entries();
        foreach ($this->arr_CoreCountry as $key => $value)
        // etc
Run Code Online (Sandbox Code Playgroud)

}

$this->在原始代码中省略了.

编辑 这是我的测试代码〜

class Testing extends CI_Controller {

    protected $foo = array('test'=>'foo', 'bar'=>'baz');

    function index() {
        foreach($this->foo as $k => $v) {
            echo $k . ' = ' . $v . '<br />';
        }
    }
}

// outputs:
test = foo
bar = baz
Run Code Online (Sandbox Code Playgroud)

也许您可以发布您的语法错误,因为它们似乎在原始帖子中缺失.