PHP:如何从当前类中使用的特征方法调用父方法?

时间:2014-05-28 06:33:23

标签: php inheritance traits

我们有以下课程:

class baseClass {
    function method() {
        echo 'A';
    }
}

trait mixin {
    function mixinFunction() {
        ... /// <-- problem here
    }
}

class currentClass {
    use mixin;

    function method() {
        mixinFunction();
    }
}
...
$object = new currentClass();
$object->method();

在不更改此类/方法结构且不将非静态方法称为静态的情况下调用baseClass::method()时,是否可以从trait执行$object->method();回显'A'?

修改

这是一个愚蠢的问题,答案是在特质方法中使用parent::method(),它会调用baseClass::method()

2 个答案:

答案 0 :(得分:2)

从trait copy到class的所有方法,您必须以[{1}}或->调用方法。

::

答案 1 :(得分:1)

将其更改为:

class baseClass {
    function method() {
        echo 'A';
    }
}

trait mixin {
    abstract function method();

    function mixinFunction() {
        $this->method();
    }
}

class currentClass extends baseClass {
    use mixin;

    function method() {
        $this->mixinFunction();
    }
}