PHP的Trait机制原理与用法分析
本文实例讲述了PHP的Trait机制原理与用法。分享给大家供大家参考,具体如下:
Trait介绍:
1、自PHP5.4起,PHP实现了一种代码复用的方法,称为trait。
2、Trait是为类似PHP的单继承语言二准备的一种代码复用机制。
3、Trait为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用method。
4、trait实现了代码的复用,突破了单继承的限制;
5、trait是类,但是不能实例化。
6、当类中方法重名时,优先级,当前类>trait>父类;
7、当多个trait类的方法重名时,需要指定访问哪一个,给其它的方法起别名。
示例:
traitDemo1{ publicfunctionhello1(){ return__METHOD__; } } traitDemo2{ publicfunctionhello2(){ return__METHOD__; } } classDemo{ useDemo1,Demo2;//继承Demo1和Demo2 publicfunctionhello(){ return__METHOD__; } publicfunctiontest1(){ //调用Demo1的方法 return$this->hello1(); } publicfunctiontest2(){ //调用Demo2的方法 return$this->hello2(); } } $cls=newDemo(); echo$cls->hello(); echo"
"; echo$cls->test1(); echo"
"; echo$cls->test2();
运行结果:
Demo::hello
Demo1::hello1
Demo2::hello2
多个trait方法重名:
traitDemo1{ publicfunctiontest(){ return__METHOD__; } } traitDemo2{ publicfunctiontest(){ return__METHOD__; } } classDemo{ useDemo1,Demo2{ //Demo1的hello替换Demo2的hello方法 Demo1::testinsteadofDemo2; //Demo2的hello起别名 Demo2::testasDemo2test; } publicfunctiontest1(){ //调用Demo1的方法 return$this->test(); } publicfunctiontest2(){ //调用Demo2的方法 return$this->Demo2test(); } } $cls=newDemo(); echo$cls->test1(); echo"
"; echo$cls->test2();
运行结果:
Demo1::test
Demo2::test
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。