无法访问 codeigniter 模型中的变量

发布于 2024-11-07 15:54:52 字数 865 浏览 1 评论 0原文

我试图从 codeigniter 控制器访问模型中的数组集,但事情很奇怪。

目前我在模型中拥有的只是这样:

class Pages_model extends CI_Model {
    function __construct()
    {
        parent::__construct();
    }

    var $pages = array(
        'draw', 'stackoverflow', 'words'
    );
}

我可以看到正在设置数组,因为当我执行时

$this->load->model('Pages_model');
die(var_dump(get_object_vars($this->Pages_model)));

我得到输出

array
  'pages' => 
    array
      0 => string 'draw' (length=4)
      1 => string 'stackoverflow' (length=13)
      2 => string 'words' (length=5)

但是当我尝试访问变量本身时:

 $this->load->model('Pages_model');
 die(var_dump($this->Pages_model->$pages));

我收到错误:

消息:未定义的变量:页面

这对我来说没有任何意义。到底是怎么回事????

I am trying to access an array set in a model from a codeigniter controller, and things are acting odd.

Currently all I have in the model is this:

class Pages_model extends CI_Model {
    function __construct()
    {
        parent::__construct();
    }

    var $pages = array(
        'draw', 'stackoverflow', 'words'
    );
}

I can see the array is being set because when I execute

$this->load->model('Pages_model');
die(var_dump(get_object_vars($this->Pages_model)));

I get the output

array
  'pages' => 
    array
      0 => string 'draw' (length=4)
      1 => string 'stackoverflow' (length=13)
      2 => string 'words' (length=5)

But when I try to access the variable itself:

 $this->load->model('Pages_model');
 die(var_dump($this->Pages_model->$pages));

I get an error:

Message: Undefined variable: pages

This does not make any sense to me. What is going on????

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

心碎无痕… 2024-11-14 15:54:52

尝试 $this->Pages_model->pages,不要在页面之前添加 $。

当您执行此操作时:

$this->Pages_model->$pages

PHP 尝试评估 $pages 的变量,该变量为 null (Pages_model->null)。

Try $this->Pages_model->pages, without the $ before pages.

When you do this:

$this->Pages_model->$pages

PHP tries to evaluate the variable of $pages, which is null (Pages_model->null).

谎言月老 2024-11-14 15:54:52

我不确定您是否可以直接访问模型中的变量,我相信您只能调用函数,也许为变量创建一个 getter 函数并返回变量。例如。

模型页面

function get_pages() {
   return this->pages;
}

控制器

$pages = $this->Pages_model->get_pages();

I'm not sure you can directly access variables in a model I believe you can only call functions, perhaps make a getter function for the variable and return the variable. eg.

Model Page

function get_pages() {
   return this->pages;
}

Controller

$pages = $this->Pages_model->get_pages();
深海不蓝 2024-11-14 15:54:52

您可以直接访问该变量,如果您像这样定义它:

class Pages_model extends CI_Model {
    function __construct()
    {
        parent::__construct();
        $this->pages = array(
        'draw', 'stackoverflow', 'words'
    );
    }

}

那么您可以通过以下方式调用它: $this->pages_model->pages

You can access the variable directly, if you define it like this :

class Pages_model extends CI_Model {
    function __construct()
    {
        parent::__construct();
        $this->pages = array(
        'draw', 'stackoverflow', 'words'
    );
    }

}

Then you would call it by: $this->pages_model->pages

浅忆流年 2024-11-14 15:54:52

制作静态成员:

class Model_name {
        static $member='nothing';
}
//and use it with scope resolution operator '::'
$m = new Model_name();
echo $m::member; //output: nothing
$m::member = 'something';
echo $m::member; //output: something

Make static member:

class Model_name {
        static $member='nothing';
}
//and use it with scope resolution operator '::'
$m = new Model_name();
echo $m::member; //output: nothing
$m::member = 'something';
echo $m::member; //output: something
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文