繁体   English   中英

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

[英]PHP: How to call parent method from a trait method used in current class?

我们有以下课程:

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

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

class currentClass {
    use mixin;

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

调用$object->method();是否可以从trait执行baseClass::method()baseClass::method() ' $object->method(); 不改变这个类/方法结构而不调用非静态方法作为静态?

编辑:

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

从trait copy到class的all方法,你必须调用方法->::

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

class currentClass {
    use mixin;

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

将其更改为:

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();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM