博主信息
博文 24
粉丝 0
评论 12
访问量 20105
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
Trait相关作业
移动用户-5435854
原创
1252人浏览过

4月30日作业
Trait组合的同名方法的命名冲突的解决方案有哪些, 实例进行演示
演示如何在trait中改变trait成中的访问控制
trait 实现 接口方法的优点是什么? 分析一下有什么缺点(选做)
实例演示一个trait与接口,抽象类联合编程(如果实在想不出案例, 可以写出思路也行, 但绝对不允许抄课堂案例, 你懂的)

Trait组合的同名方法的命名冲突的解决方案有哪些, 实例进行演示,演示如何在trait中改变trait成中的访问控制

答:当trait同名的时候,有两种办法解决:
一种是把一个同名的替换,语法是insteadOf
另一种是用别名as,特别注意的是,as 还可以修改trait成员的访问控制

两种命名冲突的解决方案和trait中改变trait中的访问控制的方法演示如下:

  1. trait tceshi
  2. {
  3. public function ceshi()
  4. {
  5. return __TRAIT__ . ' => ' . __METHOD__;
  6. }
  7. }
  8. trait tceshi2
  9. {
  10. public function ceshi()
  11. {
  12. return __TRAIT__ . ' => ' . __METHOD__;
  13. }
  14. }
  15. trait tceshi3
  16. {
  17. use tceshi, tceshi2 {
  18. // 1. 替代
  19. tceshi::ceshi insteadOf tceshi2;
  20. // 2. 别名
  21. tceshi2::ceshi as td2;
  22. }
  23. // 演示如何在trait中改变trait成中的访问控制,原来是public,直接改成了protected
  24. use tceshi {ceshi as protected td1;}
  25. }
  26. // 工作类
  27. class Work
  28. {
  29. use tceshi3;
  30. }

trait 实现 接口方法的优点是什么? 分析一下有什么缺点(选做)

trait 实现接口的方法优点个人觉得是方便客户调用(trait就像软件的小插件?),估计以后框架中,会很多trait呀接口呀这种东西。相当于接口和trait都是集成的东西(实现某种功能)像积木一样,客户拿来直接就可以拼装了用了,直接实现一些客户想实现的功能,而且也便于团队协作使用同样的功能。省的张三使用一个功能就一点一点写一个,李四想要同样功能,也一点一点重复写一个。而是集成在那里,谁用谁就调用就可以了。个人拙见不知道对不对。
缺点暂时不知道,希望老师解惑。

实例演示一个trait与接口,抽象类联合编程(如果实在想不出案例, 可以写出思路也行, 但绝对不允许抄课堂案例, 你懂的)

皇上选妃案例

  1. <?php
  2. //选妃案例
  3. $girls = ['西施', '东施', '李师师', '贾玲', '貂蝉', '如花'];
  4. // 接口
  5. interface iCreateId
  6. {
  7. // 删选出唯一妃子
  8. public static function generateId(int $min, int $max):int;
  9. }
  10. // trait: 实现选妃方法
  11. trait createId
  12. {
  13. public static function generateId(int $min, int $max):int
  14. {
  15. return mt_rand($min, $max);
  16. }
  17. }
  18. // 实现今晚翻牌规则
  19. class DrawPrize implements iCreateId
  20. {
  21. use createId;
  22. public static function fanpan(array $girls, int $id)
  23. {
  24. return $girls[$id];
  25. }
  26. }
  27. //皇上开始选
  28. $id = DrawPrize::generateId(0,5);
  29. $Tonight = DrawPrize::fanpan($girls, $id);
  30. printf('皇上!今晚侍寝的是: <span style="color:red">%s</span>', $Tonight);

感想:

从trait开始正式进入天书模式,大量所学的知识扑面而来,以前的知识不牢固造成了头脑中很多问号。我靠,太恐怖了,好久没有想哭的感觉了。感觉快跟不上了。从来没这么焦虑过。

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

批改状态:合格

老师批语:看来你之前学了一个假对象
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系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+教程免费学