【问题标题】:Setting variable to be accessed by different methods within the class设置类中不同方法可以访问的变量
【发布时间】:2009-12-15 10:47:50
【问题描述】:

我有一个具有不同方法的控制器,但它们都必须设置一个包含要显示在视图框中的项目列表的变量,我从数据库中提取数据并设置 $data['categories']
我可以设置一次并让所有方法都可以看到它吗?

【问题讨论】:

    标签: php codeigniter scope


    【解决方案1】:

    除此之外,如果您仅使用 $this->data 将值获取到您的视图中,而不是这样做:

    $this->data->something = 'whatever';
    

    然后做

    $this->load->view('something', $this->data);
    

    你可以改为:

    $this->load->vars('something', 'whatever');
    

    然后稍后使用正常的本地化 $data 数组(或任何您喜欢的),因为该变量将对所有加载的视图文件全局可用。

    我并不是说任何一种方式都更好,只是让您知道还有其他方法可以完成。我个人混合使用这些方法。 :-)

    【讨论】:

    • 谢谢,我错过了 load->vars,这正是我需要的。
    【解决方案2】:

    使其成为类的属性

    class Controller {
        protected $data;
    

    并使用 '$this' 在您的方法中访问:

    class Controller {
        function foo() {
           $this->data etc...
    

    【讨论】:

    • 是的,这是一个愚蠢的问题。我正在这样做,但在加载视图时忘记使用$this->data 而不是$data。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-06
    • 2019-09-20
    • 2018-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多