首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CodeIgniter控制器构造函数

CodeIgniter控制器构造函数
EN

Stack Overflow用户
提问于 2012-11-26 05:45:42
回答 4查看 59.5K关注 0票数 16

我对codeigniter非常陌生,我想知道控制器中构造函数的含义。我在codeigniter教程中看到了以下代码-

代码语言:javascript
运行
复制
class upload extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->helper(form);
    }

    // rest of the class...

我的问题是构造函数是什么时候被调用的--它是在控制器每次服务请求时被调用的吗(例如,控制器类是为它收到的每个请求实例化的)?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-26 06:59:07

嗯,这是一个更一般的PHP问题。无论如何,正如您在手册中看到的那样,每次实例化该类时都会(自动)调用神奇的方法__construct():http://www.php.net/manual/en/language.oop5.decon.php

通常,在CI中调用构造函数是不必要的,除非您确实需要一个构造函数。在您发布的示例中,代码在类的每个实例化时加载帮助器-这与在每个方法中加载帮助器相同,只是节省了大量的输入并确保不会忘记。你也可以把你想要的库/helper/model放在config/autoload.php中的相应的autoload数组中(检查CI手册中的"autoloading“)

一旦您在子控制器中定义了一个构造函数,您就必须调用父构造函数(邮件CI_Controller类的),因为有创建主CI对象和加载所有类的位置,并且您的子控制器中也需要这些构造函数;如果做不到这一点,您的子类将单独构造并且不会继承。

我希望我说得很清楚,英语不是我的母语:)

票数 15
EN

Stack Overflow用户

发布于 2012-11-27 02:17:36

构造函数是的魔术方法,字面意思就是它叫做魔术方法。让构造器变得很酷的是,它会在任何方法之前为你做事情。因此,如果你有一个admin类,并且有人应该登录才能访问它--你可以在构造函数中检查登录,如果他们没有被授权,就把他们弹出。

在构造函数中,您可以加载您的类所需的模型、库、帮助器等,它们将可用于类中的任何方法。

您可以加载方法使用的变量。这对于模型来说真的很有用。

票数 4
EN

Stack Overflow用户

发布于 2016-11-29 12:22:03

不要在最新的apache和codeigniter中使用_construct()函数

使用helperlin in index()函数

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13555822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档