codeigniter框架中的继承问题

发布于 2022-09-01 06:11:01 字数 319 浏览 8 评论 0

初学ci框架,请讲解一下parent::__construct();这句什么意思,它的作用是什么,为什么在很多class中都会看到这句。谢谢。

class test extends CI_Controller {

        function __construct() {
                parent::__construct();
        }

        function index() {

                $this->load->view('test_view');
        }
}

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

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

发布评论

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

评论(4

凉宸 2022-09-08 06:11:01

你可以理解成 你的这个class在初始化的时候执行了一次父类里面的初始化方法

白鸥掠海 2022-09-08 06:11:01

CI是一个面向对象编程的PHP框架,这里的test(建议大写)是一个类,继承自CI_Controller, __construct是这个test的构造方法,parent::__construct()表示执行父类的构造方法,具体有就是CI_Controller__construct方法,源码位于框架目录下的/system/core/Controller.php,你可以看下,

/**
     * Class constructor
     *
     * @return  void
     */
    public function __construct()
    {
        self::$instance =& $this;

        // Assign all the class objects that were instantiated by the
        // bootstrap file (CodeIgniter.php) to local class variables
        // so that CI can run as one big super object.
        foreach (is_loaded() as $var => $class)
        {
            $this->$var =& load_class($class);
        }

        $this->load =& load_class('Loader', 'core');
        $this->load->initialize();
        log_message('info', 'Controller Class Initialized');
    }

可以抽空了解下PHP面向对象编程,应该会对你有所帮助

酷炫老祖宗 2022-09-08 06:11:01

这个是PHP的问题,不是CI的问题。
其他语言比如java,子例在实例化时会默认调用父类的无参构造函数(若父类显示定义构造函数并且无无参构造函数继承时子类也得显示调用。)
php似乎没这特性,所以为了继承父类的一些特性,在子类中显式说明调用父类的构造方法。

不气馁 2022-09-08 06:11:01

这个控制器里面所有的方法都自动用上了这个__construct()的方法,比如:

function __construct() {
    parent::__construct();
    if($this->session->userdata('is_login')){
            
    }else{
        redirect('login');
    }
}

比如,这个控制器的所有页面不登陆都会自动跳转出去

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文