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

Class 如何在CodeIgniter中创建库类的多个实例?,class,codeigniter,instance,Class,Codeigniter,Instance,我想在CodeIgniter中创建几个类的实例。我已将类创建为库,但无法确定用于创建多个实例的语法。来自CodeIgniter用户指南: 将库分配给不同的对象名称 如果第三个(可选)参数为 如果为空,则库通常为空 指定给具有相同属性的对象 命名为库。例如,如果 库名为Session,它将 指定给名为 $this->session 如果你喜欢设置自己的类 可以将其值传递给 第三个参数: $this->load->library('session','', “我的会议”) //会话类现在已被访问

我想在CodeIgniter中创建几个类的实例。我已将类创建为库,但无法确定用于创建多个实例的语法。

来自CodeIgniter用户指南:

将库分配给不同的对象名称

如果第三个(可选)参数为 如果为空,则库通常为空 指定给具有相同属性的对象 命名为库。例如,如果 库名为Session,它将 指定给名为 $this->session

如果你喜欢设置自己的类 可以将其值传递给 第三个参数: $this->load->library('session','', “我的会议”)

//会话类现在已被访问 使用:

$this->my_会话


我想这就是你想要的。

我知道这一步已经过去很久了,但这是我在寻找答案时遇到的问题之一。这是我的解决方案

这是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_类是调用我编写的静态函数。

很抱歉重新讨论这个主题,但我想我可能需要添加一些合理的内容

您可以这样做来添加一个类的多个实例。我不知道它是否违反了codeigniter的标准用法,但似乎比加载一个库(它创建了$this->library\u名称,但没有使用)然后用“new”关键字再创建两个实例更像codeigniter


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

我很确定他的意思是:$one=新类$二=新类别(“但不同”);不起作用。您不能在构造中定义参数,然后像这样加载库并在CI中启动实例。它将抛出一个错误,因为它希望您像这样加载它:$this->load->library($My_class',$given_number)我可以问一下如何将实例取回以便将其存储到一个数组中吗?[控制器内部]$this->someclass;每次都给出当前实例吗?因为我用different$params为每个on执行了以下操作,但结果是第一个对象不是两个different:$this->load->library('SomeClass',$params);打印($this->someclass)$此->加载->库('SomeClass',$params);打印($this->someclass);
$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