2016-08-21 4 views
0

コントローラ/モデル/どこか他の場所で何かを呼び出すたびに、$this->databaseまたは$this->otherVarOrFuncと入力するのは本当にうんざりです。
私のコントローラのすべての機能に、$this->databaseの代わりに、例えば$databaseのようなOOPトリックがありますか?

私は、MVCレベルでBaseControllerの構造を明確に定義しており、他のすべてのクラスではBaseObjectを使用しています。これらの2つには5から20個のオブジェクト変数が含まれています(アプリのサイズに依存します)、$this->を入力する必要がないと、私ははるかに満足しています。

全体のパフォーマンスに悪影響を及ぼしますか?
ありがとうございます

答えて

0

各クラス関数の冒頭で、$thisを参照する関数のローカル変数を定義できます。たとえば

class a { 
    function __construct() { 
     $this->aa = "hey";  
    } 
    public $aa; 
    public function aaa() { 
     $ab = &$this->aa; 
     $this->aa = "hey1"; 
     echo $ab; 
    } 
} 
$b = new a; 
$b->aaa(); 


は今の機能を通じて、 $ab代わりの $this->aa

+0

まあ、確か使うが、それは、変数ごとの機能ごとに1本の以上のラインを書くことが必要です。 –

+0

リファレンスを使って何かを遅くするとは思えませんが、 '$ this->'と打つのをやめます。 –

+0

あなたは正しいです!私は追加の質問があります:$ this->データベースを持つクラスから新しいオブジェクトを体系化し、新しいオブジェクトの補集合が($ database)をパラメータとして持つ場合、$ obj = new someObject($ db)またはnew someObject($ db)?どのように速く、どれくらいの量が必要ですか? –

関連する問題