2010-12-07 87 views
0

我的项目是使用coneigniter,轻量级的php框架。 我对此有点新手。codeigniter控制器机制

所以,我的问题是..

这是php文件。

Actor extends Controller 
{ 
    $a = 0; 

    function __construct() 
    { 
     $this->a = 1; 
    } 

    function abc() 
    { 
     echo $this->a; 
    } 

} 

所以,当我致电演员类的功能ABC()使用AJAX, 构造,__construct()被调用每次?

我的意思是...在HTML文件中

<script> 
    $.post(.... , url : "http://someaddress/actor/abc", function result(data){ 
     alert(data); 
    }); 
</script> 

结果数据警报是1或0?

+2

记住,当您扩展笨Controller类,你可能会想调用基类的`__construct( )`方法在你自己的构造函数中,例如在你的`__construct()`中,使用`parent :: __ construct();`来确保在你自己的代码之前正确设置了一切。 – 2010-12-07 10:33:11

回答

2

我很困惑,为什么你不运行这个查找,但是原则上调用/ actor/abc会导致“1”。

同样:

Actor extends Controller 
{ 
    function __construct() 
    { 
     echo "always echo this "; 
    } 

    function abc() 
    { 
     echo "only echo this when called "; 
    } 

    function dosomethingelse() 
    { 
     //do other stuff 
    } 

} 

会导致“总是附和这只能随声附和这个叫时”当你打/演员/ ABC,如果你打/演员/ dosomethingelse只是“始终回声这”会使。

阅读了有关在这里:http://php.net/manual/en/language.oop5.decon.php

(编辑为了清楚位)

2

是的。每个新请求都会创建一个Actor的新实例。所以Controller的构造函数将在每个请求中被调用。结果将是1.