什么是$ this->?

时间:2011-03-07 02:49:31

标签: php

到目前为止,我认为我知道:

所以$this->是在自己的函数/ var?

之外访问函数/ var

$this->如何知道它是函数还是变量?

为什么我们引用类似$this->data的var而不是$this->$data

4 个答案:

答案 0 :(得分:7)

$this指的是已调用方法的当前对象。如果最后有一对圆括号,它知道它是否是一个函数。我们使用以前的语法,因为$this->$data表示查看名称为$data的字段;例如如果$this->foo

,则$data == 'foo'

答案 1 :(得分:3)

$this是指向您当前所在对象的变量。 $this->将访问当前对象中的方法或字段。

至于为什么$this->data而不是$this->$data,这只是一种语法怪癖。你必须问PHP语言设计师。这可能是因为后者对方法没有多大意义。

如果这看起来像希腊语,那么您可能希望转到the PHP manual's section on classes and objects并阅读。

答案 2 :(得分:1)

$this表示给定对象的实例,来自对象内的上下文。

我想说,知道您是否正在访问方法或财产是您的责任。阅读文档。如果您使用此方法调用对象方法,则它使用$this->method($args);的预期语法,属性(成员变量)使用$this->var = 'value';的预期语法

答案 3 :(得分:0)

这是一个相当长的主题,但在排序中,$ this是指向实例的指针。 $ this-> data是指特定实例(此实例)的数据变量。这是$ this->数据,而不是$ this-> $ data只是因为惯例。