Ruby相当于PHP的$ this

时间:2012-06-03 16:22:36

标签: php ruby oop this

Ruby中的PHP $this->相当于什么?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:3)

正如已经提到的,$this的类似物是self。但是,您询问了$this->,这意味着您希望使用它来访问实例变量($this->somevar)或实例方法(this->somemethod())。对于实例变量,Ruby中的等效项为@(如@somevar中所示)。对于实例方法,等价的只是编写方法名称(somemethod),或者,如果您想要详细(self.somemethod)。