在Ruby中,相当于PHP的
$this->
的是self.
。this
的 Ruby 等价物是 self
,它们都指代当前实例。
麻烦的是,在 Ruby 类作用域中,self
指代定义正在构建的类的类 Class
的当前实例。在方法内部,self
指代类的实例。
例如:
class Example puts self # => "Example" - 类对象的字符串表示形式
def foo puts self # #<Example:0xdeadbeef> - 实例的字符串表示形式 end end
$this
的类比是 self
,这已经被提到过了。然而,您问的是 $this->
,这意味着您想使用它来访问实例变量( $this->somevar
)或实例方法(this->somemethod()
)。对于实例变量,在Ruby中的等效方式是 @
(如 @somevar
)。对于实例方法,等效方式就是直接写方法名(somemethod
),或者如果您喜欢冗长一些,可以使用self.somemethod
。