load一个library是否相当于是new 了一个class的操作
比如说,我有个library 名字叫HelloClass Hello()
{
public temp;
}
我在controllers里面做load操作
$this->load->library('Hello');
然后修改temp的值,$this->hello->temp = 2;
是否跟下面操作是一样的呢?
$c = new Hello;
c->temp = 2;
如果是一样的话,那么我做两次new的操作,用load->library怎么实现呢?
$c = new Hello;
$a = new Hello;
$c->temp = 2;
$a->temp = 3; LOAD后会记录的,再次LOAD时,如果已经LOAD的话就返回上次LOAD的实例 CI 核心是单例模式的,只能实例化一个实例。 首先,楼主的Class Hello() ,public temp;都写错了、 本帖最后由 ~夜行侠~ 于 2011-10-21 09:29 编辑
其次,我觉得可以这样实现楼主的想法:
<?php
Class Hello
{
public $temp;
public function getInstance()
{
return new Hello();
}
}
?>
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* @author icen
* @email icen21@21cn.com
* @date 2011/10/6
* @copyright icen
*/
class Test extends CI_Controller {
public function __construct(){
parent::__construct();
}
public function index()
{
$this->load->library('hello');
$hello1=$this->hello->getInstance();
$hello1->temp=1;
print_r($hello1);
$hello2=$this->hello->getInstance();
$hello2->temp=2;
print_r($hello2);
}
}
页:
[1]