到目前为止,我认为我知道:
所以$this->
是在自己的函数/ var?
但$this->
如何知道它是函数还是变量?
为什么我们引用类似$this->data
的var而不是$this->$data
?
答案 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只是因为惯例。