PHP class中self,parent,this的区别以及实例介绍
在PHP中,self、parent和this都是关键字,用于表示类本身,父类以及当前对象。
self
self表示当前类,可以在类的内部使用,也可以在静态方法中使用。使用self时,需要使用双冒号(::)来调用类的成员方法和属性。下面是一个使用self的示例:
class ExampleClass {
public static $property = 'some value';
public static function getProperty() {
return self::$property;
}
}
// 调用类方法和属性
echo ExampleClass::getProperty();
在上面的代码中,我们定义了一个ExampleClass类,该类有一个静态属性$property,以及一个静态方法getProperty()。在getProperty()方法中,我们使用self关键字访问类的静态属性$property。
parent
parent表示父类,也可以在类的内部使用。子类继承了父类的所有属性和方法,可以使用parent关键字访问父类的方法和属性。下面是一个使用parent的示例:
class ParentClass {
protected $property = 'some value';
protected function getProperty() {
return $this->property;
}
}
class ChildClass extends ParentClass {
public function getParentProperty() {
return parent::getProperty();
}
}
// 实例化子类并调用父类方法
$child = new ChildClass();
echo $child->getParentProperty();
在上面的代码中,我们定义了一个ParentClass和一个ChildClass。ChildClass继承了ParentClass,并定义了一个方法getParentProperty(),该方法访问父类的方法getProperty()。在getProperty()方法中,我们使用parent关键字访问父类的属性$property。
this
this表示当前对象,可以在类的内部和外部使用。在类的内部使用this,可以访问对象的属性和方法。在类的外部使用this,需要先实例化对象。下面是一个使用this的示例:
class ExampleClass {
private $property;
public function __construct($prop) {
$this->property = $prop;
}
public function getProperty() {
return $this->property;
}
}
// 实例化类并调用方法
$example = new ExampleClass('some value');
echo $example->getProperty();
在上面的代码中,我们定义了一个ExampleClass类,该类有一个私有属性$property,以及一个构造函数__construct()和一个公共方法getProperty()。在__construct()函数中,我们使用了$this关键字设置属性$property的值,而在getProperty()方法中,我们使用$this关键字访问属性$property的值。
总结一下,self、parent和this都是关键字,用于表示类本身、父类以及当前对象。使用self时,需要使用双冒号(::)来调用类的成员方法和属性。子类可以使用parent关键字访问父类的方法和属性。在类的内部使用this可以访问对象的属性和方法,而在类的外部使用this需要先实例化对象。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php class中self,parent,this的区别以及实例介绍 - Python技术站