我最近一直在努力学习PHP,但是我发现我对traits这个概念有些困惑。我理解水平代码复用的概念,以及不一定要从抽象类中继承的想法。但我不明白的是:使用traits和使用接口之间的关键区别是什么?
我尝试搜索一些不错的博客文章或者是解释何时使用其中一个而不是另一个的文章,但是到目前为止我找到的例子都很相似,甚至可以说是一模一样。
特质与类相同,可用于多重继承和代码重用。
我们可以在类中使用特质,也可以使用“use”关键字在同一类中使用多个特质。
接口与特质相同,用于代码重用。
接口可以扩展多个接口,因此可以解决多重继承问题,但当我们实现接口时,应在类中创建所有方法。 有关更多信息,请单击以下链接:
http://php.net/manual/en/language.oop5.traits.php http://php.net/manual/en/language.oop5.interfaces.php
Imagick
对象一样行走和交谈,而不需要在 traits 出现之前所需的所有臃肿代码。 - quickshiftin