2012-06-03 18 views
7

RubyでPHPの$this->と同等のものは何ですか?

答えて

18

ルビー相当のthisは、selfです。これらはどちらも現在のインスタンスを参照しています。

難しい部分は、Rubyクラスのスコープでは、selfは、ビルドしているクラスを定義するクラスClassの現在のインスタンスを参照しています。メソッド内では、selfはクラスのインスタンスを参照します。

例:上述したよう

 
class Example 
    puts self # => "Example" - the stringified class object 

    def foo 
    puts self # #<Example:0xdeadbeef> - the stringified instance 
    end 
end 
3

$thisのアナログは、selfあります。しかし、$this->について尋ねました。つまり、インスタンス変数($this->somevar)またはインスタンスメソッド(this->somemethod())にアクセスするために使用します。インスタンス変数の場合、Rubyの等価は@@somevarのように)になります。例えばメソッドの場合は、メソッド名(somemethod)を記述するか、冗長にしたい場合は(self.somemethod)と同等です。