脚本宝典收集整理的这篇文章主要介绍了php – 与其他特征方法的冲突,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
trait FooTraIT { public function fooMethod() { return 'foo method'; } public function getRow() { return 'foo row'; } } trait TooTrait { public function tooMethod() { return 'too method'; } public function getRow() { return 'too row'; } } class Boo { use FooTrait; use TooTrait; public function booMethod() { return $this->fooMethod(); } }
错误,
我该怎么办?
而且,使用两个相同的方法名称,如何从trait FooTrait获取该方法?
$a = new Boo; var_dump($a->getRow()); // Fatal error: Call to undefined method Boo::getRow() in...
编辑:
class Boo { use FooTrait,TooTrait { FooTrait::getRow insteadof TooTrait; } public function booMethod() { return $this->fooMethod(); } }
<?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; } }
所以在你的情况下可能是
class Boo { use FooTrait,TooTrait { FooTrait::getRow insteadof TooTrait; } public function booMethod() { return $this->fooMethod(); } }
(即使你单独使用也可以工作,但我认为更清楚)
以上是脚本宝典为你收集整理的php – 与其他特征方法的冲突全部内容,希望文章能够帮你解决php – 与其他特征方法的冲突所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。