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`关键字可以很方便地调用父类的方法和构造函数。在子类中调用父类的方法时,我们一定要注意方法的访问权限,要确保子类有调用父类方法的权限。