PHP中this、self和parent的区别

264 5月之前 PHP 面向对象

答案

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

答案解析

1.this

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

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

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

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

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

parent::__construct("Home");

参考资料