博主信息
博文 29
粉丝 0
评论 0
访问量 36197
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP基础:trait方法命名冲突解决方案及修改访问控制
暴宇
原创
1516人浏览过

PHP基础:trait方法命名冲突解决方案及修改访问控制

1.trait组合的同名方法命名冲突的解决方案

1.1指定默认执行(替代方式)
1.2给不同的组件方法起别名

  1. // 组件1
  2. trait t1
  3. {
  4. public function tfun()
  5. {
  6. return __TRAIT__ . ' 组件中的方法 ' . __METHOD__;
  7. }
  8. }
  9. // 组件2
  10. trait t2
  11. {
  12. public function tfun()
  13. {
  14. return __TRAIT__ . ' 组件中的方法 ' . __METHOD__;
  15. }
  16. }
  17. // 组件3(引入组件1和组件2)
  18. // 利用指定默认执行方法和别名的方式解决命名冲突
  19. trait t3
  20. {
  21. use t1, t2 {
  22. // 1. 替代(指定默认执行t1组件中的tfun方法,也可理解为用t1组件中的方法替代t2组件中的同名方法)
  23. t1::tfun insteadOf t2;
  24. // 2. 别名
  25. t2::tfun as td2;
  26. }
  27. }
  28. class jobClass{
  29. use t3;
  30. }
  31. $job=new jobClass;
  32. echo $job->tfun(),'<hr>';
  33. echo $job->td2(),'<hr>';

2.修改trait方法的访问控制

用as关键字修改trait方法的访问控制

  1. trait t4{
  2. // as: 还可以修改trait成员的访问控制
  3. use t1 {tfun as private td1;}
  4. }
  5. class jobClass{
  6. use t4;
  7. }
  8. $job=new jobClass;
  9. // echo $job->td1(),'<hr>';

批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:一二阶段作业,请在6月10日前完成
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学