2016-04-22 5 views
0

インスタンス変数を使用するときはいつでも、疑似変数$ thisを使用する必要がありますが、正しいのですか?それらがメソッドのオブジェクトであれば、私はまだそれらを使用する必要があります。私はそうのような例を持っているときに:その後、

class myClass{ 
    private $thingOne; 
    private $thingTwo; 

    public function __construct($thingOne,$thingTwo){ 
     $this->thingOne = $thingOne; 
     $this->thingTwo = $thingTwo; 
    } 
} 

そして私は、私はのようなものを入力を開始する必要がmyClassにメソッドの追加を開始:

$this->thingOne->doSomething($this->thingTwo->doSomethingElse()); 

しかし、私はむしろ入力します。

$thingOne->doSomething($thingTwo->doSomethingElse()); 

私は、これを書いて迷惑にならないようにしています。私はそれを与えたインスタンス変数を使用していると仮定することはできませんか?私のコードはこれをこれをこれでこれをこれで実現します。

私は何かをもっと短い名前に変更できますか? $ tか何か?

+5

'$ this'は現在のオブジェクトへの参照であり、名前を変更することはできません。独自の参照変数を作成することはできますが、すべてのメソッドでそれを行う必要があります。ですから、 '$ this'を使うだけで、あまり怠け者にならないようにしてください。 –

+0

あなたが使用する必要がある場合: $ this-> thingOne-> doSomething($ this-> thingTwo-> doSomethingElse());あなたのオブジェクトの内部に 、それはおそらく悪い設計や実装です。 –

+0

$これは、インスタンス変数と関数にローカルな変数を区別することもできます... – Zimmi

答えて

1

$thisは、現在のクラスオブジェクトへの参照であり、名前を変更することはできません。独自の参照変数を作成することもできますが、すべてのメソッドで宣言する必要があり、非効率的になります。代わりに、ただ定期的に$thisを使用する必要があります。

関連する問題