在PHP中,parent关键字通常用于调用父类中的方法或属性。但是,还有一些高级用法可以使用parent关键字。
class ParentClass {
public static $staticProperty = 'I am a static property in parent class';
public static function staticMethod() {
return 'I am a static method in parent class';
}
}
class ChildClass extends ParentClass {
public static function childMethod() {
// 访问父类的静态属性
echo parent::$staticProperty;
// 调用父类的静态方法
echo parent::staticMethod();
}
}
ChildClass::childMethod();
class ParentClass {
public function __construct() {
echo 'Parent constructor called';
}
}
class ChildClass extends ParentClass {
public function __construct() {
parent::__construct();
echo 'Child constructor called';
}
}
new ChildClass();
在以上示例中,当创建ChildClass对象时,首先会调用ParentClass的构造函数,然后才会调用ChildClass的构造函数。
class ParentClass {
public function method() {
echo 'Parent method called';
}
}
class ChildClass extends ParentClass {
public function method() {
parent::method();
echo 'Child method called';
}
}
$child = new ChildClass();
$child->method();
在以上示例中,ChildClass重写了ParentClass的method方法,并在重写的方法内部调用了父类的method方法,以保留父类方法的功能并添加新的功能。