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