2010-12-07 16 views
0

私のプロジェクトでは、coneigniter、lightweight php frameworkを使用しています。 私は少しこれは初心者です。codeigniterコントローラ機構

ですから、私の質問は..

これはPHPファイルです。

Actor extends Controller 
{ 
    $a = 0; 

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

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

} 

私はアヤックス、 コンストラクタ、__construct()を使用しActorクラスの機能のABCを呼び出すときに、()毎回呼ばれているのですか?

私は意味... htmlファイルに

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

結果データのアラートは、1または0のですか?

+2

をクマ心の中であなたはCodeIgniterのコントローラクラスを拡張するとき、あなたはおそらく、基本クラスの '__constructを(呼び出すしたいと思うこと:ここではそれについてまで読む

) 'メソッドを呼び出すことができます。あなたの '__construct()'で 'parent :: __ construct();'を使って、あなた自身のコードの前にすべてが正しく設定されていることを確認してください。 –

+0

はい、これは良い点です@OPはCIドキュメントを読んでいます - それは文字どおりSOの隣にある情報源です。 – Ross

+0

ああ、あなたのclarifingのおかげで〜^^; –

答えて

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の新しいインスタンスが作成されます。したがって、コントローラのコンストラクタは各リクエストで呼び出されます。結果は1になります。

関連する問題