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

[已解决] 如何加载类的时候初始化参数

[复制链接]
发表于 2012-4-2 15:38:14 | 显示全部楼层 |阅读模式
$this->load->library('pay/pay_factory');我要加载的类,那么CI 如何传递初始化参数的,

原生的是这样实现的,$payment_handler = new pay_factory($pay_name,$cfg);

CI 是如何 $pay_name $cfg 这两个传递过去的? 我看了 $this->load->library 手册,第二个参数还是不明白
                               
发表于 2012-4-2 17:34:58 | 显示全部楼层
本帖最后由 actionbi 于 2012-4-2 17:37 编辑

下面是BASEPATH/core/Loader.php中的内容,也就是系统核心类中CI_Loader类

把这两个参数放到数组中传递过去。
$this->load->library('pay/pay_factory',array($pay_name,$cfg));

下面是ci的源码。要么你就自己看,要么关注CI源码阅读这个帖子。近期会更新Loader类
        public function library($library = '', $params = NULL, $object_name = NULL)
        {
                if (is_array($library))
                {
                        foreach ($library as $class)
                        {
                                $this->library($class, $params);
                        }
                        return;
                }

                if ($library == '' OR isset($this->_base_classes[$library]))
                {
                        return FALSE;
                }
                if ( ! is_null($params) && ! is_array($params))
                {
                        $params = NULL;  
                }


                $this->_ci_load_class($library, $params, $object_name);
        }



本版积分规则