0

所以我在 PHP 类中有一个函数,我想为另一个类(扩展类)提供该函数的修改版本。

我会在扩展类中使用我的修改重新创建类吗?我将如何在我的扩展类中拥有一个行为不同的函数?

4

1 回答 1

6

您可以像这样覆盖子类中的方法:

<?php

class A {
    public function printText($param) {
        echo 'foo';
    }
}

class B extends A {
    public function printText($param) {
        // Optional: This will call the printText method from the parent class A
        parent::printText($param); 

        echo 'bar';
    }
}

$instanceA = new A();
$instanceA->printText('sampleArg'); // Result: foo

$instanceB = new B();
$instanceB->printText('sampleArg'); // Result: foobar

/* EOF */

重要的是,被覆盖的方法与父类方法具有相同数量的参数,否则会出现 PHP 错误。

于 2013-11-04T14:10:46.197 回答