脚本宝典收集整理的这篇文章主要介绍了PHP特征冲突(特质参数),脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
Trait Param,GroupId和SessionId. traits GroupId和SessionId包括Param.
类GroupSession包括特征GroupId和SessionId
<?PHP traIT Param { PRivate $params = []; public function setParams($params) { $this->params = $params; } public function getParam($param) { return isset($this->params[$param]) ? $this->params[$param] : null; } } trait GroupId { use Param; public function getGroupId() { return $this->getParam('group.id'); } } trait SessionId { use Param; public function getSessionId() { return $this->getParam('session.id'); } } class GroupSession { use GroupId { GroupId::setParams insteadOf SessionId; GroupId::getParam insteadOf SessionId; } use SessionId; } $t = new GroupSession();
GroupId和SessionId在GroupSession的组合中定义相同的属性($params).但是,定义不同并且被认为是不兼容的.
请告诉我,如何解决这个问题?
谢谢!
trait A{ public function smallTalk(){ echo "I am form trait A and method smallTalk"; echo "<br>"; } public function BigTalk(){ echo "I am form trait A and method bigTalk"; echo "<br>"; } } trait B{ public function smallTalk(){ echo "I am form trait B and method smallTalk"; echo "<br>"; } public function bigTalk(){ echo "I am form trait B and method bigTalk"; echo "<br>"; } } class AB{ use A,B{ A::bigTalk insteadof B; B::bigTalk as gazi; B::smallTalk insteadof A; A::smallTalk as anis; } } $obj1 = new AB; $obj1->bigTalk(); $obj1->gazi(); $obj1->smallTalk(); $obj1->anis();
以上是脚本宝典为你收集整理的PHP特征冲突(特质参数)全部内容,希望文章能够帮你解决PHP特征冲突(特质参数)所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。