时间:2021-07-01 10:21:17 帮助过:9人阅读
<?phptrait Tool{functiongetName(){echo"tool name"; } }classHammerTool{useTool} $tempTool = newHammerTool();$tempTool->getName();//输出:tool name
优先级是,子类覆盖trait,trait覆盖子类继承的父类。
如果use几个trait,且trait中有相同的方法可用insteadof或as方法来实现替换或重命名。
如:
<?phptrait A{functionsmallTalk(){echo"A smallTalk"; }functionbigTalk(){echo"A bigTalk"; } }trait B{functionsmallTalk(){echo"B smallTalk"; }functionbigTalk(){echo"B bigTalk"; }functionmiddleTalk(){echo"B middleTalk"; } }classTalker {useA, B {B::smallTalkinsteadofA;//用B的smallTalk替换A的方法。A::bigTalk insteadof B; B::middleTalk asprivate myPrivateHello;//重命名为B} }
版权声明:本文为原创文章,转载需注明出处,文章观点只代表当时的看法,一定有不足,欢迎拍砖提醒,非常感谢!
以上就介绍了php学习笔记--trait的使用(为实现多继承产生),包括了方面的内容,更多相关内容请关注PHP中文网(www.gxlcms.com)!