2016-04-22 2 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.