model间的相互调用
在论坛上看到model间的相互调用。说a调用b而且b也调用a没有问题。但是我用的时候在test1_model.php中
function Test1_model()
{
parent::Model();
$this->model_ci =& get_instance();
$this->model_ci->load->model('test2_model','mTest2',TRUE);
}
function test1()
{
echo 1;
}
在test2_model.php中
function Test2_model()
{
parent::Model();
$this->model_ci =& get_instance();
$this->model_ci->load->model('test1_model','mTest1',TRUE);
}
function test2()
{
echo 2;
}
然后在控制器中调用
function Test1()
{
parent::Controller();
$this->load->model('test1_model','mTest1',TRUE);
}
function index()
{
$this->mTest1->test1();
}
提示:
连接被重置
有没有人遇到相同的问题,怎么解决比较好呢 你这个和互相调用无关,显示链接被重置和 PHP 无关。
你这里只是 load 了一下,根本没互相调用。 是不是显示链接被重置和 PHP 无关我不清楚,
不过确实是因为test2 load test1,test1 load test2引起的,我试过很多次。不信你也可以试试看。试验了几个方法都没解决这个问题 你这样貌似会造成死循环。
我里面嵌套你,你里面嵌套我,永远无止境,造成 apache 崩溃,然后就出现了页面无法访问。 是啊,死循环。不过有时候确实会遇到这种情况。难道遇到这种情况只能在2个model都写同样的function?如果这样真挺难受的。 死循环调用哪个编译器会让你pass啊,这是代码写的有问题,和平台无关 回复 5# wuwu1222
你这个问题改变设计就可以了,否则那些大型类库,早就死循环了,你说是不是?呵呵 也就这样吧 只是偶尔会碰到,处理起来模块间可能会乱一些而已 支持!!!!!!!!!! 这样互相调用才会乱,关键是你都放到了构造函数里,你如果放到某个方法里就不会死循环了。
因为我构造你,你又构造我,到底是谁构造谁?鸡生蛋,蛋生鸡?
页:
[1]
2