Blogger Information
Blog 33
fans 0
comment 0
visits 27671
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
服务端 - PHP - OOP之Trait
Original
709 people have browsed it

服务端 - PHP - OOP之Trait

一、概述

  • 语法:trait Trait名;
  • 描述:一组具有相同或者类似功能的代码集
  • 特点:不能被实例化且只能嵌入宿主类中使用
  • 作用:实现代码复用
  • trait成员:包含常规成员、静态成员和抽象成员,但不包含类常量

二、实现

1. 覆盖基类方法,降低单继承的影响

  1. //定义一个trait
  2. trait tSayName {
  3. public static function sayName() {
  4. return '我的名字叫小明';
  5. }
  6. }
  7. //基类
  8. class a {
  9. public static function sayName() {
  10. return '我的名字叫小红';
  11. }
  12. }
  13. //扩展类
  14. class b extends a {
  15. use tSayName;
  16. }
  17. //客户端代码
  18. echo b::sayName();//trait在扩展类中的优先级大于基类,如果扩展类中也定义了同名的函数,那么当前类中的同名方法的优先级是最大的

2. 方法组合,横向拓展

  1. //定义第一个trait
  2. trait tA {
  3. public static function sayName() {
  4. return '我的名字叫小明';
  5. }
  6. }
  7. //定义第二个trait
  8. trait tB {
  9. public static function sayFrom() {
  10. return '我来自广东';
  11. }
  12. }
  13. //定义第三个trait
  14. trait tC {
  15. use tA, tB;//把多个类中用到的相同或者类似的方法写到trait里就完事了
  16. }
  17. //工作类
  18. class hello {
  19. use tC; //相当于use tA, tB;
  20. }
  21. //客户端代码
  22. echo hello::sayName(), hello::sayFrom();

三、课程总结

  • 今天学习了 PHP 的面向对象编程,通过上课认真听讲和认真完成老师布置的作业,使得我对 PHP 面向对象编程的理解和运用更加深入和熟悉。最主要的知识点是明白和掌握了Trait的特点以及它的基本用法。
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:明白了接口, trait就非常不错了, 多少学生全卡在这了
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
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!