我想在 CodeIgniter 中创建一个类的几个实例。我已经将我的类创建为一个库,但无法弄清楚用于创建多个实例的语法。
Jon
问问题
10790 次
3 回答
15
来自 CodeIgniter 用户指南:
将库分配给不同的对象名称
如果第三个(可选)参数为空,则通常会将库分配给与库同名的对象。例如,如果库名为 Session,它将被分配给名为 $this->session 的变量。
如果您喜欢设置自己的类名,可以将其值传递给第三个参数:
$this->load->library('session', '',
'my_session');
现在访问会话类。使用:
$this->my_session
我想这就是你要找的。
于 2009-03-28T20:31:02.403 回答
8
我知道这个帖子早已过去,但这是我在寻找答案时遇到的问题之一。所以这是我的解决方案...
这是PHP。将您的类创建为一个库,使用标准 CI 加载器类加载它,但可以像在常规 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
的是调用我编写的静态函数。
于 2011-10-19T21:00:48.363 回答
6
很抱歉恢复这个话题,但我想我可能有一些合理的补充。
您可以这样做来添加一个类的多个实例。我不知道它是否违反了 Codeigniter 标准用法,但似乎比加载一个库(创建$this->library_name
未使用的库)然后使用“new”关键字创建 2 个更多实例更 Codeigniterish。
$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
我在我的代码中使用它来生成不同的菜单。我有一个“菜单”类和每个菜单的不同实例,每个菜单都有不同的菜单项。
于 2012-10-15T06:45:38.933 回答