用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1823|回复: 6
收起左侧

[HELP] 构造函数的使用场合

[复制链接]
发表于 2014-5-8 22:15:17 | 显示全部楼层 |阅读模式
   就是 function __construct() {
  parent::__construct();
}
这个构造函数 什么时候要用到?  有些控制器要载入这个函数,有些又不用,比如下面这个:<?php
class Products extends CI_Controller {

    public function shoes($sandals, $id)
    {
        echo $sandals;
        echo $id;
    }
}
?>


所以,具体什么时候要用这个函数呢?  求解,大神们
发表于 2014-5-9 07:52:20 | 显示全部楼层
parent::__construct()
就是执行父类的构造函数,看看父类构造函数中是否初始化有自己需要的信息,没有的话执不执行都不所谓了
 楼主| 发表于 2014-5-9 12:51:06 | 显示全部楼层
一叶扁舟 发表于 2014-5-9 07:52
parent::__construct()
就是执行父类的构造函数,看看父类构造函数中是否初始化有自己需要的信息,没有的 ...

大概懂你意思了,谢谢了
发表于 2014-5-9 14:35:32 | 显示全部楼层
当子类也要写初始化的代码时候 重写初始化方法__construct()这样父类里的初始化方法就覆盖了,

,要在构造函数里 把 parent::__construc();写上,意思是把父类里的初始化操作代码也执行一遍,然后执行子类里的初始化代码。
function __construct() {
  parent::__construct();
echo 'this is sonconstruct';
}
发表于 2014-5-13 15:17:11 | 显示全部楼层
本帖最后由 ljc 于 2014-5-13 15:22 编辑

就是在你用new创建那个class的时候,class里的构造函数就自动执行了,不需要你再去调用
用途一般是做配置类初始化信息,比如加个类全局变量什么的,
其实就是对象的初始化

类似这样

类似这样
 楼主| 发表于 2014-5-13 21:21:35 | 显示全部楼层
ljc 发表于 2014-5-13 15:17
就是在你用new创建那个class的时候,class里的构造函数就自动执行了,不需要你再去调用
用途一般是做配置类 ...

如果没有 parent::__construct 你写的那个类哪些功能会有问题?
发表于 2014-5-14 09:38:42 | 显示全部楼层
ashiyouwu 发表于 2014-5-13 21:21
如果没有 parent::__construct 你写的那个类哪些功能会有问题?

不会啊。。。不写 不影响的  是因为 我定义了一些变量 了 我要在这个类中 频繁的使用

本版积分规则