php怎么调用父类方法

fiy 其他 178

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在 PHP 中,我们可以使用 `parent::` 关键字来调用父类的方法。当子类继承了父类的方法,并且在子类中重新定义了同名的方法时,如果需要在子类中调用父类的方法,可以使用 `parent::方法名()` 的方式来实现。

    下面是一个简单的示例代码:

    “`php
    class ParentClass {
    public function sayHello() {
    echo “Hello from parent class!”;
    }
    }

    class ChildClass extends ParentClass {
    public function sayHello() {
    echo “Hello from child class!”;
    parent::sayHello(); // 调用父类的 sayHello 方法
    }
    }

    $child = new ChildClass();
    $child->sayHello(); // 输出 “Hello from child class!” 和 “Hello from parent class!”
    “`

    在上面的示例中,父类 `ParentClass` 定义了一个 `sayHello` 方法,并且子类 `ChildClass` 继承了该方法,并重新定义了同名的方法。在子类的 `sayHello` 方法中,使用 `parent::sayHello()` 调用了父类的 `sayHello` 方法。

    通过这种方式,我们可以在子类中访问并调用父类已经定义的方法,从而实现代码的重用和扩展。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在PHP中,调用父类方法有以下几种方法:

    1. 使用parent关键字:通过使用parent关键字,可以在子类中直接调用父类的方法。在子类中使用parent::methodName()的方式来调用父类中的相应方法。例如:

    “`php
    class ParentClass {
    public function methodName() {
    // 父类方法的实现
    }
    }

    class ChildClass extends ParentClass {
    public function methodName() {
    // 子类方法的实现
    parent::methodName(); // 调用父类方法
    }
    }
    “`

    2. 使用self关键字:使用self关键字可以在父类的静态方法中调用该方法。self::methodName()表示调用当前类的方法。例如:

    “`php
    class ParentClass {
    public static function methodName() {
    // 静态方法的实现
    }
    }

    class ChildClass extends ParentClass {
    public static function methodName() {
    // 子类静态方法的实现
    self::methodName(); // 调用子类的静态方法
    parent::methodName(); // 调用父类的静态方法
    }
    }
    “`

    3. 使用static关键字:使用static关键字可以在父类和子类的静态方法中调用该方法。static::methodName()表示调用当前类的方法。例如:

    “`php
    class ParentClass {
    public static function methodName() {
    // 静态方法的实现
    }
    }

    class ChildClass extends ParentClass {
    public static function methodName() {
    // 子类静态方法的实现
    static::methodName(); // 调用子类的静态方法
    parent::methodName(); // 调用父类的静态方法
    }
    }
    “`

    4. 使用$this关键字:使用$this关键字可以在子类的非静态方法中调用父类的方法。$this->methodName()表示调用当前类的方法。例如:

    “`php
    class ParentClass {
    public function methodName() {
    // 非静态方法的实现
    }
    }

    class ChildClass extends ParentClass {
    public function methodName() {
    // 子类非静态方法的实现
    $this->methodName(); // 调用子类的非静态方法
    parent::methodName(); // 调用父类的非静态方法
    }
    }
    “`

    5. 使用call_user_func()函数:使用call_user_func()函数可以在任何上下文中调用父类的方法。该函数接受两个参数,第一个参数是要调用的方法名,第二个参数是方法的参数列表。例如:

    “`php
    class ParentClass {
    public function methodName($arg1, $arg2) {
    // 方法的实现
    }
    }

    class ChildClass extends ParentClass {
    public function methodName($arg1, $arg2) {
    // 方法的实现
    call_user_func(array(‘ParentClass’, ‘methodName’), $arg1, $arg2); // 调用父类的方法
    }
    }
    “`

    以上就是在PHP中调用父类方法的几种方法。根据具体的情况选择合适的方法来调用父类的方法。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    调用父类方法是面向对象编程中一种常见的操作,可以通过调用父类的方法来实现代码的复用和扩展。在PHP中,调用父类方法主要有两种方式:使用parent关键字和使用self关键字。

    一、使用parent关键字调用父类方法
    调用父类方法的一种常见方式是使用parent关键字。parent关键字可以在子类中直接调用父类中的方法。

    使用parent关键字的语法如下:
    parent::methodName();

    其中,parent表示父类,::是作用域解析操作符,methodName是要调用的父类方法的名称。

    下面是调用父类方法的一个示例代码:

    “`
    class ParentClass {
    public function parentMethod() {
    echo “This is the parent method.” ;
    }
    }

    class ChildClass extends ParentClass {
    public function childMethod() {
    parent::parentMethod();
    echo “This is the child method.” ;
    }
    }

    $child = new ChildClass();
    $child->childMethod();
    “`

    在上面的示例代码中,ParentClass是父类,ChildClass是子类。childMethod()方法中使用parent::parentMethod()调用了父类的parentMethod()方法。输出结果为”This is the parent method. This is the child method.”,表示先调用了父类方法,然后调用了子类方法。

    二、使用self关键字调用父类方法
    另一种调用父类方法的方式是使用self关键字。self关键字表示当前类,可以在子类中使用self关键字调用父类中的方法。

    使用self关键字的语法如下:
    self::methodName();

    其中,self表示当前类,::是作用域解析操作符,methodName是要调用的父类方法的名称。

    下面是使用self关键字调用父类方法的一个示例代码:

    “`
    class ParentClass {
    public function parentMethod() {
    echo “This is the parent method.” ;
    }
    }

    class ChildClass extends ParentClass {
    public function childMethod() {
    self::parentMethod();
    echo “This is the child method.” ;
    }
    }

    $child = new ChildClass();
    $child->childMethod();
    “`

    在上面的示例代码中,ParentClass是父类,ChildClass是子类。childMethod()方法中使用self::parentMethod()调用了父类的parentMethod()方法。输出结果为”This is the parent method. This is the child method.”,表示先调用了父类方法,然后调用了子类方法。

    总结:
    使用parent关键字和self关键字都可以用来调用父类方法。一般来说,使用parent关键字调用父类方法更常见,因为它更符合面向对象的设计原则,即子类扩展父类的功能而不是完全替代父类的功能。而使用self关键字调用父类方法则比较适合在特殊情况下使用,例如在父类和子类中定义了同名的静态方法时,可以使用self关键字调用父类的静态方法。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部