Php 什么是$this->;?
到目前为止,我想我知道的是: 那么,Php 什么是$this->;?,php,Php,到目前为止,我想我知道的是: 那么,$this->是在函数/var之外访问函数/var吗 但是$this->如何知道它是函数还是变量呢 为什么我们引用这样的变量$this->data而不是this$this->$data?将访问当前对象中的方法或字段 至于为什么是$this->data而不是$this->$data,这只是一个语法怪癖。您必须询问PHP语言设计师。这可能是因为后者对于一种方法来说没有多大意义 如果您觉得这像希腊语,那么您可能需要前往并阅读。$此指的是已在其上调用方法的当前对象。如
$this->
是在函数/var之外访问函数/var吗
但是$this->
如何知道它是函数还是变量呢
为什么我们引用这样的变量
$this->data
而不是this$this->$data
?
是指您当前所在对象的变量$this->
将访问当前对象中的方法或字段
至于为什么是$this->data
而不是$this->$data
,这只是一个语法怪癖。您必须询问PHP语言设计师。这可能是因为后者对于一种方法来说没有多大意义
如果您觉得这像希腊语,那么您可能需要前往并阅读。
$此
指的是已在其上调用方法的当前对象。如果末尾有一对括号,它就知道它是否是一个函数。我们使用前一种语法是因为$this->$data
表示查看名称为$data
的字段;e、 g.$this->foo
如果$data=='foo'
这是一个相当长的主题,但在排序中,$this是指向实例的指针$此->数据是指特定实例(此实例)的数据变量。它是$this->data,而不是$this->$data,这仅仅是因为惯例。$this
表示给定对象的实例,来自对象内的上下文
我会说,知道您是否正在访问方法或属性是您的责任。阅读文档。如果使用此方法调用对象方法,它将使用预期语法
$this->method($args)代码>和属性(成员变量)使用预期语法$this->var='value'代码>可以是“对象”或“类的实例”。如果你想谈论类本身,可以使用self::
。或者更好的是:“[…]类的实例[…]”@NSanjay你熟悉面向对象编程吗?@NSanjay我觉得很难相信。您从未在类中引用过其他方法/字段?是的,这就是为什么我的第一个编码很混乱,直到有人用$this->重写它,才向我指出这一点,这就是我为什么要问这个问题的原因。因此,我的第一篇文章是正确的?“当从对象上下文中调用方法时,伪变量$this可用。$这是对调用对象的引用(通常是该方法所属的对象,但如果从辅助对象的上下文静态调用该方法,则可能是另一个对象)。”我想知道这样的问题在这里是否从未被问过。我认为“其名称存储在$data
中”的可能重复在这里会更有意义。所以这只是一个安全问题?不,它与安全无关,看看面向对象编程。这是一种引用特定对象的方法。您必须查看类和oop才能了解更多。使用$this->我们可以在函数中嵌套函数吗?这会不会使读者复杂化?就像稍后要修改代码的人一样