Blogger Information
Blog 39
fans 0
comment 0
visits 30559
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP:Trait与接口、抽象类的实战
Original
830 people have browsed it

一、解决trait组合中的方法命名冲突

和改变访问控制方法

  1. <?php
  2. // 解决trait组合中的方法命名冲突
  3. trait tPrint1
  4. {
  5. public function printer()
  6. {
  7. return __TRAIT__ . ' => ' . __METHOD__;
  8. }
  9. }
  10. trait tPrint2
  11. {
  12. public function printer()
  13. {
  14. return __TRAIT__ . ' => ' . __METHOD__;
  15. }
  16. }
  17. trait tPrint3
  18. {
  19. use tPrint1,tPrint2
  20. {
  21. // 解决trait中同名函数冲突的方法:1.替换 intsteadof
  22. tprint1::printer insteadOf tprint2;
  23. // 2.别名 as
  24. tPrint2::printer as tp2;
  25. // 3.用as改变访问控制
  26. // tPrint2::printer as protected tp2 ;
  27. }
  28. }
  29. // 工作类
  30. class Work
  31. {
  32. use tPrint3;
  33. }
  34. // 客户端
  35. echo (new Work)->printer(),'<br>';
  36. echo (new work)->tp2();

实例效果

二、实例演示一个trait与接口,抽象类联合编程思路

初步思路:
1.创建一个接口
2.创建工作类
3.创建一个trait,实现接口方法
然后~
实在难为我了,为了不影响5月1日的作业,只好先提交半成品,日后补充。

总结:
1.trait组合同名函数冲突解决方法:
替换——insteadof
别名/改变访问控制——as
2.trait 实现接口方法的优点:把原先在工作类中实现的接口抽象方法,间接在trait中实现,给客户的工作类更加简洁。

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:创建这么多的层给, 就是想让代码写得优雅
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post