PHP $this和self、parent这三个关键词分别代表什么
在PHP中,$this
、self
和 parent
是三个用于面向对象编程(OOP)的关键字,它们各自有特定的用途和含义:
$this
:
$this
是一个指向当前对象实例的指针。- 它用于访问当前对象的属性和方法。
- 在类的实例方法中,
$this
总是指向调用该方法的对象实例。
class MyClass {
public $property = 'value';
public function showProperty() {
echo $this->property; // 访问当前对象的属性
}
}
$obj = new MyClass();
$obj->showProperty(); // 输出: value
self
:
self
是一个对类本身的引用,用于访问类的静态属性和静态方法,以及在类定义内部引用类名。- 它不依赖于类的实例,因此可以在没有创建对象的情况下使用。
self
通常用于定义静态方法或属性,或者在类的静态上下文中调用其他静态方法或属性。
class MyClass {
public static $staticProperty = 'static value';
public static function showStaticProperty() {
echo self::$staticProperty; // 访问类的静态属性
}
}
MyClass::showStaticProperty(); // 输出: static value
parent
:
parent
用于在子类中引用父类的属性和方法。- 它通常用于覆盖(重写)父类方法时,调用父类的原始方法。
parent
还可以用于访问父类的构造函数。
class ParentClass {
public function showMessage() {
echo "Parent class message";
}
}
class ChildClass extends ParentClass {
public function showMessage() {
parent::showMessage(); // 调用父类的方法
echo " - Child class message";
}
}
$child = new ChildClass();
$child->showMessage(); // 输出: Parent class message - Child class message
总结:
$this
用于访问当前对象的属性和方法。self
用于访问类的静态属性和静态方法,以及在类定义内部引用类名。parent
用于在子类中引用父类的属性和方法。