Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在codeigniter中声明类级变量_Codeigniter_Variables_Declaration - Fatal编程技术网

在codeigniter中声明类级变量

在codeigniter中声明类级变量,codeigniter,variables,declaration,Codeigniter,Variables,Declaration,我是CI新手,我想做的是拥有一个类级变量(例如数组)。但似乎CI,尽管自吹自擂,不支持这个功能。《用户指南》中没有提及这方面的内容。有一个标题叫做私有函数和变量,但文本似乎对变量保持沉默 我想要一些像: class OrderStats extends CI_Controller { protected $arr_CoreCountry = ('0'=>'uk', '1'=>'us'); public function __construct() { p

我是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);

}
请记住,当我在本文中的位置声明$arr_CoreCountry变量时,我经常看到语法错误消息。 当然,当我把它放在任何函数的某个地方时,它超出了范围,我不断得到一个错误消息,$arr_corecontry是一个未定义的变量。 所以问题是我该在哪里定义它


期待快速响应,因为codeigniter的这篇文章浪费了我半天的时间。

您有一个语法数组声明错误。请尝试这样声明数组:

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

请查看此网站了解数组手册:

您有语法数组声明错误。请尝试这样声明数组:

protected $arr_CoreCountry = array('0'=>'uk', '1'=>'us'); 
请查看此网站了解阵列手册:

这应该可以:

类OrderStats扩展CI_控制器{

    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
}

您在原始代码中省略了
$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
类测试扩展了CI_控制器{
受保护的$foo=array('test'=>'foo','bar'=>'baz');
函数索引(){
foreach($k=>v时的this->foo){
回声$k'='.$v'
; } } } //产出: 测试=foo bar=baz
也许您可以发布您的语法错误,因为它们似乎从原始帖子中丢失了。

这应该可以:

类OrderStats扩展CI_控制器{

    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
}

您在原始代码中省略了
$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
类测试扩展了CI_控制器{
受保护的$foo=array('test'=>'foo','bar'=>'baz');
函数索引(){
foreach($k=>v时的this->foo){
回声$k'='.$v'
; } } } //产出: 测试=foo bar=baz

也许您可以发布您的语法错误,因为它们似乎从原始帖子中丢失了。

我自己解决了这个问题

我改变了两件事

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

改为

var $arr_CoreCountry = array(0=>'se', 1=>'fi',2=>'de'); 
foreach ($this->arr_CoreCountry as $key => $value)

foreach($arr\u CoreCountry as$key=>$value)

改为

var $arr_CoreCountry = array(0=>'se', 1=>'fi',2=>'de'); 
foreach ($this->arr_CoreCountry as $key => $value)
我丢失了这美元,但当我把它放在那里时,它仍然不起作用。当我将protected改为var时,它起了作用


谢谢大家的意见…

我自己解决了这个问题

我改变了两件事

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

改为

var $arr_CoreCountry = array(0=>'se', 1=>'fi',2=>'de'); 
foreach ($this->arr_CoreCountry as $key => $value)

foreach($arr\u CoreCountry as$key=>$value)

改为

var $arr_CoreCountry = array(0=>'se', 1=>'fi',2=>'de'); 
foreach ($this->arr_CoreCountry as $key => $value)
我丢失了这美元,但当我把它放在那里时,它仍然不起作用。当我将protected改为var时,它起了作用


谢谢大家的输入…

谢谢,但很抱歉输入错误。我正在像你提到的那样声明我的数组。但是获取未定义变量$arr_corecontry错误消息。是否尝试在constants.php文件中声明该常量并在控制器中使用它?也许这对你有帮助?好啊但是类属性的概念到哪里去了呢?您需要理解,在MVC中,您并没有真正的OOP。Codeingiter中的控制器不应该有属性(显然)。他们应该只接收数据,将其发送给模型进行处理,然后将其分配给视图。这里唯一真正的OOP实现是模型(它们处理所有编程逻辑)。它们可以而且大部分应该是具有属性和方法的类(一个例子是DB中每个tabe的模型)。希望这能有所帮助……而且Codeigniter中的库也是纯OOP;)谢谢,但很抱歉是打字错误。我正在像你提到的那样声明我的数组。但是获取未定义变量$arr_corecontry错误消息。是否尝试在constants.php文件中声明该常量并在控制器中使用它?也许这对你有帮助?好啊但是类属性的概念到哪里去了呢?您需要理解,在MVC中,您并没有真正的OOP。Codeingiter中的控制器不应该有属性(显然)。他们应该只接收数据,将其发送给模型进行处理,然后将其分配给视图。这里唯一真正的OOP实现是模型(它们处理所有编程逻辑)。它们可以而且大部分应该是具有属性和方法的类(一个例子是DB中每个tabe的模型)。希望这能有所帮助……而且Codeigniter中的库也是纯OOP;)是的,我在我的帖子中忽略了这一点,因为这没有任何区别。错误仍然存在,我不同意;我刚刚测试过,除非我误解了,否则它不会有问题。事实上,它在我这边不起作用。然而,我自己解决了这个问题。我会很快发布我的答案。是的,我从我的帖子中忽略了这一点,因为这没有任何区别。错误仍然存在,我不同意;我刚刚测试过,除非我误解了,否则它不会有问题。事实上,它在我这边不起作用。然而,我自己解决了这个问题。我会很快发布我的答案。