php – 使用特征扩展一个类

由于我刚刚从另一种语言跳到PHP,我想问一下在类中添加扩展名的正确方法.我的配置现在如下:

class A extends B {
    use C;         

    public function a(){

    }
}

我需要在A类中添加一些额外的函数,但从逻辑上划分它们,所以我虽然会使用特征C.

所以我的问题是 – 我可以在我的特质C中使用函数a()吗?我知道我可以在特质C中定义抽象函数a(),但我相信这根本不是一个好习惯.也许我可以以某种方式将其注入特质或者这也是一种不好的做法?

解决方法:

有可能,选择是开发人员的*裁量权,最佳解决方案是基于经验.

trait C {
    public function hello() {
        parent::a();
        echo 'World!';
    }
}

class B {
    function a() {
        echo "hello";
    }
}

class A extends B{
    use C;  
}

(new A())->hello(); // helloWorld!
上一篇:php – 使用抽象类或特征获取对象的命名空间?


下一篇:c# – Visual Studio 2017测试资源管理器特征发现:显示超过TestCategory()