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

标签 php inheritance traits

让我们有以下类(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() 到 echo 'A' 而无需更改此类/方法结构而不调用非静态方法作为静态方法?

编辑:

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

最佳答案

从traitcopy到class的all方法,必须以->::调用方法。

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

class currentClass {
    use mixin;

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

关于PHP:如何从当前类中使用的特征方法调用父方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23904325/

相关文章:

c# - 多继承无多重继承无代码重复

php - 需要标签的项目的 Wordpress 小部件更新实例

php - 使用 COUNT、GROUP BY、ORDER BY MAX 过滤日志文件

php - 组合两个 MYSQL 查询以仅获取好友的帖子

scala - 为混合特性的所有类构建操作

c++ - 使用除特化之外的默认特征

rust - 当忽略某些值时,如何避免迭代器实现中不必要的昂贵操作?

php - 从 wordpress 编辑页面屏幕中删除主编辑器

具有抽象工厂的派生类的 C++11 单例

Java:为什么扩展需要一个空的构造函数?