当前位置:  开发笔记 > 编程语言 > 正文

如何在CodeIgniter中创建库类的多个实例?

如何解决《如何在CodeIgniter中创建库类的多个实例?》经验,为你挑选了3个好方法。

我想在CodeIgniter中创建一个类的几个实例.我已经将我的类创建为库,但无法弄清楚用于创建多个实例的语法.



1> GloryFish..:

从CodeIgniter用户指南:

CI用户指南:Loader类

将库分配给其他对象名称

如果第三个(可选)参数为空,则通常会将库分配给与库名称相同的对象.例如,如果库名为Session,则将其分配给名为$ this-> session的变量.

如果您更喜欢设置自己的类名,可以将其值传递给第三个参数:$ this-> load-> library('session','','my_session');

//现在使用以下方式访问会话类:

$这个 - > my_session

我认为这就是你要找的东西.


我很确定他的意思是:$ one = new Class; $ two = new Class('but_different');

2> 小智..:

我知道这个问题早已过去,但这是我在寻找答案时遇到的问题之一.所以这是我的解决方案......

这是PHP.将类创建为库,使用标准CI Loader类加载它,但像在常规PHP脚本中一样使用它.

建立你的班级:

class My_class {

    var $number;

    public function __construct($given_number){
        $number = $given_number;
    }

    public function set_new_num($given_number){
        $number = $given_number;
    }
}

加载它:

// This will load the code so PHP can create an instance of the class
$this->load->library('My_class');

然后在需要的地方实例化并使用对象:

$num = new My_class(24);

echo $num->number;
// OUTPUT: 24

$num->set_new_num(12);

echo $num->number;
// OUTPUT: 12

我使用$ this-> my_class的唯一一次是调用我编码的静态函数.



3> Liviuge..:

很抱歉恢复这个主题,但我想我可能有一些合理的补充.

您可以这样做以添加类的多个实例.我不知道它是否违反了codeigniter标准用法,但似乎比加载一个库(创建$ this->未使用的库名)更为codeigniter-ish然后使用"new"关键字制作2个更多实例.

$this->load->library( 'my_library', '', 'instance1' );
$this->load->library( 'my_library', '', 'instance2' );

$this->instance1->my_class_variable = 1; 
$this->instance2->my_class_variable = 2; 

echo $this->instance1->my_class_variable; // outputs 1
echo $this->instance2->my_class_variable; // outputs 2

我在我的代码中使用它来生成不同的菜单.我有一个"菜单"类和每个菜单的不同实例,每个菜单中都有不同的菜单项.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有