How to have multiple Inheritance PHP
我有两个班级叫Ra_shortcode和wpbackeryshortcodesconner
现在我需要一个三级的ra shortcodecontainer继承这两个类。
知道如何实现它吗?
提前谢谢
- PHP不允许在单个类上有多个继承。你可能想把特质看成是一个中间地带。
- 从命名的角度来看,我希望WPBakeryShortCodesContainer包含一个RA_Shortcode记录的集合,同样,RA_ShortcodeContainer也可以扩展WPBakeryShortCodesContainer记录(反之亦然),但不明白为什么容器需要扩展它作为容器的类
- wpbackeryshortcodescontainer是第三方类,而ra shortcode是我们的,它减少了我们的代码行,我们每个项目都在编码,所以对ra shortcodecontainer也是如此,需要ra shortcode中的主要代码,所以我不想在ra shortcodecontainer中再次编写它们。
简短的回答是:你没有。
基于类名(顺便说一句,查找名称空间的概念),甚至不需要多个继承。
当类B从类A继承时,表示类A是B的特例。
也许这能说明你的处境。假设您有一个类Box和Cat。现在你需要一个专门的BoxForCats课程。BoxForCats不应从Cat延伸。相反,你应该应用作文。
你的RA_ShortcodeContainer课应该有:
1 2 3 4
| public function addShortcode (RA_Shortcode $shortcode)
{
$this->list[] = $shortcode;
} |
P.S. read up about LSP
号
目前没有用PHP实现多重继承的方法。您可以使用特性来实现您试图实现的目标,也可以使用REQUEST、INCLUDE或USE语句(或依赖注入)来包含类。然而,特质似乎是最好和最直接的方式。
- 为什么像的特点,似乎最好的方式去的?是关于使用比直向前的特质?
- 自多个inheritance @ dbf -是不可能使用的方法在extendsPHP -唯一真正的方式完成大的原作者是怎么想的原因(至少和的量的代码)是使用一个特质。的概念的一个特质是shareable代码。从PHP文档:"一个机制为reuse特质代码在单inheritance语言如PHP。一个大的特质是为减少一些限制由一个单一的API实现inheritance大集的方法reuse自由地在几个独立的类生活在不同的hierarchies类。"
- 例如,它会更clarify与代码。