php怎么调用父类的函数
时间 : 2023-04-05 15:55:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性
在 PHP 中,如果一个类继承了另外一个类,子类可以访问父类中的属性和方法。当子类中存在同名方法时,可以使用 `parent` 关键字来调用父类中的方法。
使用 `parent` 关键字可以调用父类中的方法,语法如下:
parent::methodName(arguments);
示例代码:
```php
class ParentClass {
public function hello() {
echo "Hello, I am parent!";
}
}
class ChildClass extends ParentClass {
public function hello() {
// 调用父类 hello 方法
parent::hello();
echo "Hello, I am child!";
}
}
$obj = new ChildClass();
$obj->hello(); // 输出:Hello, I am parent!Hello, I am child!
在上面的示例中,`ChildClass` 继承了 `ParentClass`。在 `ChildClass` 中,使用 `parent::hello()` 方法调用了 `ParentClass` 中的 `hello()` 方法。如果不使用 `parent::` 关键字,将会递归调用 `ChildClass` 中的 `hello()` 方法,导致死循环。
除了直接使用 `parent` 关键字调用父类方法外,还可以使用 `::class` 关键字获取父类的类名,然后调用相应的方法,示例代码如下:
```php
class ParentClass {
public function hello() {
echo "Hello, I am parent!";
}
}
class ChildClass extends ParentClass {
public function hello() {
// 获取父类的类名
$parentClass = get_parent_class();
// 调用父类 hello 方法
$parentClass::hello();
echo "Hello, I am child!";
}
}
$obj = new ChildClass();
$obj->hello(); // 输出:Hello, I am parent!Hello, I am child!
使用 `get_parent_class()` 方法获取父类的类名,然后使用类名来调用相应的方法。
以上就是在 PHP 中调用父类方法的方法,可以根据具体情况选择使用 `parent` 关键字或者 `::class` 关键字。
在PHP中,我们可以使用`parent`关键字来调用父类中的函数。当子类继承一个父类时,它自动继承了父类的所有方法和属性。如果子类需要调用父类中已有的方法,则可以使用`parent`关键字来完成。下面是一些使用`parent`关键字的例子:
### 1. 调用父类的构造函数
当我们实例化一个子类时,它会调用自己的构造函数。如果我们需要在子类的构造函数中调用父类的构造函数,可以使用`parent::__construct()`语句。例如:
class ParentClass {
function __construct() {
echo 'Parent constructor called. ';
}
}
class ChildClass extends ParentClass {
function __construct() {
parent::__construct();
echo 'Child constructor called.';
}
}
$obj = new ChildClass(); // 输出 Parent constructor called. Child constructor called.
在上面的例子中,`ChildClass`继承了`ParentClass`,并重写了构造函数。在`ChildClass`的构造函数中,我们通过`parent::__construct()`语句调用了`ParentClass`的构造函数。
### 2. 调用父类的普通方法
如果我们需要在子类中调用父类中已有的方法,则可以使用`parent::methodName()`语句。例如:
class ParentClass {
function display() {
echo 'Parent class method called. ';
}
}
class ChildClass extends ParentClass {
function display() {
parent::display();
echo 'Child class method called.';
}
}
$obj = new ChildClass();
$obj->display(); // 输出 Parent class method called. Child class method called.
在上面的例子中,`ChildClass`继承了`ParentClass`,并重写了`display`方法。在`ChildClass`的`display`方法中,我们通过`parent::display()`语句调用了`ParentClass`的`display`方法。
### 3. 调用父类的静态方法
与普通方法类似,我们也可以通过`parent::methodName()`语句来调用父类中已有的静态方法。例如:
class ParentClass {
static function display() {
echo 'Parent class static method called. ';
}
}
class ChildClass extends ParentClass {
static function display() {
parent::display();
echo 'Child class static method called.';
}
}
ChildClass::display(); // 输出 Parent class static method called. Child class static method called.
在上面的例子中,`ChildClass`继承了`ParentClass`,并重写了一个静态方法`display`。在`ChildClass`的静态方法中,我们通过`parent::display()`语句调用了`ParentClass`的静态方法`display`。
综上所述,使用`parent`关键字可以很方便地调用父类的方法和构造函数。在子类中调用父类的方法时,我们一定要注意方法的访问权限,要确保子类有调用父类方法的权限。
上一篇
php文件怎么看代码行数
下一篇
php怎么接收小程序数据
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章