PHP中this、self和parent的区别

答案

  • this是指向对象实例的一个指针,在实例化的时候来确定指向;

  • self是对类本身的一个引用,一般用来指向类中的静态变量;

  • parent是对父类的引用,一般使用parent来调用父类的构造函数。

答案解析

1.this

this是在实例化的时候来确定指向谁。所以说,this就是指向当前对象实例的指针,不指向任何其他对象或类。

  1. $this->name = $name;
  2. print($this->name)
  3. $obj1 = new Test("Home");

2.self

self是指向类本身,也就是self是不指向任何已经实例化的对象,一般self使用来指向类中的静态变量。假如我们使用类里面的静态(用static定义)成员或常量(用const定义),我们也必须使用self来调用。还要注意使用self来调用静态变量必须使用:: (域运算符号),见实例。

  1. $this->lastCount = ++self::$firstCount;

3.parent

parent是指向父类的指针,一般我们使用parent来调用父类的构造函数。

  1. parent::__construct("Home");

参考资料