PHP 中的 $this, static , self ,parent 等等关键字的总结

Posted gaogch

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 中的 $this, static , self ,parent 等等关键字的总结相关的知识,希望对你有一定的参考价值。

 先说结论: 

self 和 __CLASS__,都是对当前类的静态引用,取决于定义当前方法所在的类。也就是说,self 写在哪个类里面, 它引用的就是谁。
$this 指向的是实际调用时的对象,也就是说,实际运行过程中,谁调用了类的属性或方法,$this 指向的就是哪个对象。但 $this 不能访问类的静态属性和常量,且 $this 不能存在于静态方法中。
static 关键字除了可以声明类的静态成员(属性和方法)外,还有一个非常重要的作用就是后期静态绑定。
self 可以用于访问类的静态属性、静态方法和常量,但 self 指向的是当前定义所在的类,这是 self 的限制。
$this 指向的对象所属的类和 static 指向的类相同。
static 可以用于静态或非静态方法中,也可以访问类的静态属性、静态方法、常量和非静态方法,但不能访问非静态属性。
静态调用时,static 指向的是实际调用时的类;非静态调用时,static 指向的是实际调用时的对象所属的类。

self 和 parent 没有什么说的;定向的

$this ,  static  随着运行,动态发生改变;

可以这么说,static  是$this 的升级版。($this指定的变化的对象,static 指定的是变化的类);

写下来,让自己记住;

以上是关于PHP 中的 $this, static , self ,parent 等等关键字的总结的主要内容,如果未能解决你的问题,请参考以下文章

PHP中的static的理解

PHP $this,self,static 的区别

php中const和static的区别和联系

php中的const和static

Java SE基础巩固

PHP5 $this self parent static的区别