How to explain 'this' keyword in a best and simple way?
我使用"this"关键字已经很长时间了。但当有人要我解释的时候,我对如何解释感到困惑。我知道我可以在类的方法中使用它来访问同一类的任何变量和方法。
1 2 3 4 5 6 7 8 9 10 11 | class MyClass{ function MyMethod1(){ echo"Hello World"; } function MyMethod2(){ $this->MyMethod1(); } } |
它是一个类的对象吗?我们不需要初始化它,它只能在类或任何其他类中使用。如何解释?
谢谢
类是对象的模型:它指定对象的外观(变量)以及它可以做什么(函数)。
如果您声明一个类:您创建一个对象。如果创建类,可以使用"this"来引用对象本身。这就是为什么不能设置"this",因为它与对象相关。它是一个特殊的只读变量。
有几个人用类似的术语解释过它,但我想补充一点,当与不熟悉面向对象编程的人交谈时,我解释说类定义是一个蓝图,对于一个房子,"这个"是你当时正在使用的实际房子。可能还有其他房子看起来完全一样,但这是特定的对象(房子)。
正如它们的名字所暗示的,实例方法对类的实例进行操作。他们怎么知道该操作哪一个?这就是
当您调用一个实例方法时,您实际上是无形地传入了一个额外的参数:要调用它的对象。例如,当您拥有此功能时:
1 2 3 4 5 6 7 | class Basket { public function a() { $this-> ...; // ... } // ... } |
你称之为
短路:
类是对象的模板或"die"。
让我们用经典的"自行车"例子。外面有许多笨手笨脚的自行车。但是,我们已经创建了一辆自行车,我们可以使用"this"关键字来引用"this"自行车。
在更技术的意义上,类是将被实例化的对象的模板。在运行时,在一个对象被实例化或创建了它自己的实例之后,我们可以在内部使用关键字"this"来引用运行该方法的实例。