PHP中this、self、parent的区别

参考:

http://www.cnblogs.com/devcjq/articles/2424738.html

http://www.cnblogs.com/alsf/p/9621002.html

1.PHP之$this解析

①$this是指向当前对象(即类的实例化对象)的指针,静态方法中不能使用$this。
  静态变量和静态方法是属于类,而非属于类实例化后的对象,因此在静态方法中无法使用$this。
②如果要在静态方法中,强制使用类的其他方法,则只能先获取类的实例化对象(new classname()),然后再使用该对象的方法。 ③当一个方法在类定义内部被调用时,有一个可用的伪变量 $this。$this 是一个到主叫对象的引用(通常是该方法所从属的对象)。

2.PHP之self解析

self是指向当前类的指针,而非实例化后的对象指针
  由于静态变量和静态方法是属于类的,因此可以使用指向当前类的指针self调用。

3.PHP之parent解析

parent是指向父类的指针,一般用于调用父类的构造函数来初始化子类,如parent::__construct()

总结:this是指向对象实例的一个指针,在实例化的时候来确定指向;self是对类本身的一个引用,一般用来指向类中的静态变量;parent是对父类的引用,一般使用parent来调用父类的构造函数。

猜你喜欢

转载自www.cnblogs.com/yueyun00/p/10043490.html