php – 避免特质碰撞 – use_once?
我有两个
PHP特征,每个特征都继承自相同的第三特征:
trait C { public function smallTalk() { echo 'c'; } } trait A { use C; public function ac() { echo 'a'.smallTalk(); } } trait B { use C; public function bc() { echo 'b'.smallTalk(); } } 我想在课堂上使用它们: class D { use A,B; public function acbc() { echo ac().bc(); } } 但我一直在收到错误
我知道use_once不是一个东西,但我正在寻找require_once或include_once提供的相同功能,但是对于特征.这个例子很简单.我的真正的C有很多方法,并且被超过2个特征继承,所以我不想在每次使用超过1个这些特征时重复一长串的代替.
您需要阅读:
Conflict Resolution
例: <?php trait A { public function smallTalk() { echo 'a'; } public function bigTalk() { echo 'A'; } } trait B { public function smallTalk() { echo 'b'; } public function bigTalk() { echo 'B'; } } class Talker { use A,B { B::smallTalk insteadof A; A::bigTalk insteadof B; } } class Aliased_Talker { use A,B { B::smallTalk insteadof A; A::bigTalk insteadof B; B::bigTalk as talk; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |