php函数使用教程讲解学习交流(浅谈PHP中的Trait使用方法)
php函数使用教程讲解学习交流
浅谈PHP中的Trait使用方法概述
在php中有一种代码复用的技术, 因为单继承的问题, 有些公共方法无法在父类中写出, 而 trait可以应对这种情况, 它可以定义一些复用的方法, 然后在你需要使用的类中将其引入即可.
刚开始的时候给我的感觉就是将trait代码块直接拿到类中的意思, 但后来我发现, 我太天真了.
php中的trait用法:
问题
当我第一次使用的时候, 因为之前一直使用抽象类, 或者定义内部对象, 然后调用内部对象中的方法, 所以我当时有了以下几个问题:
1.能否引入多个, 如果可以的话, 同名方法如何处理
2.引入方法与现有方法重名时, 如何解决
3.能否定义抽象方法, 因为有些方法需要知道使用时的情况, 在抽象类中, 这种情况一般通过调用抽象方法来解决
4.能否定义字段
5.能否将字段或方法定义为静态
6.能否对方法进行权限控制
答疑
1. trait 可以引入多个, 多个trait中存在同名方法时, 需要指定使用哪个方法, 如下:
2.引入方法与现有方法重名时, 会优先调用类中已定义的方法, 其优先级顺序为: 当前类方法>trait方法>父类方法
3. trait 中可以定义抽象方法, 语法与抽象类相同
4.trait 中可以定义字段, 语法与类相同
5. 可以定义静态方法与静态字段
6. 可以进行方法权限的控制
7. 另外, 在trait 代码块中还可以引入其他trait代码块, 语法与类中引入相同:
总结
至此, 我发现了一个新的问题, 这个 trait 与抽象类有什么区别? 说什么代码复用, 这不就是多继承么? trait与抽象类功能上有区别么? 抽象类能干的, trait都能干啊.
思前想后, 我觉得区别还是有的, 虽然说他们两个看着很像, 功能相似, 但是正如抽象类与接口一样(虽然这两者不同, 接口不能定义方法), 接口更侧重于定义一组公共的方法, 一种规范, 而抽象类则侧重于将子类中公共的方法进行抽离, 提高代码的复用.
trait 与抽象类的侧重点也不相同
trait 侧重于定义共用的代码片段, 它并不管引用此片段的类是干什么的, 只要你需要, 就可以拿走去用, 简单说就是 trait 并不约束类的类型, 而仅仅定义方法
抽象类则不同, 既然你继承我, 那你干的事情肯定跟我是一样的, 不能抽象类是去与数据库交互的, 你子类去写脚本了. 所以抽象类相对 trait 更侧重于 类型的约束.
以上所述是小编给大家介绍的php中的trait使用方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
原文链接:https://www.cnblogs.com/hujingnb/p/10549691.html
- vuephp后台开发框架(Vue+thinkphp5.1+axios实现文件上传)
- centos安装php5.6(Centos7 Yum安装PHP7.2流程教程详解)
- apache服务器对php的支持原理(php apache开启跨域模式过程详解)
- php如何发邮件(PHP示例演示发送邮件给某个邮箱)
- php 各类商品结算算法(PHP实现财务审核通过后返现金额到客户的功能)
- php微信支付步骤(PHP实现微信提现企业付款到零钱)
- apachephp安装配置教程交流(Apache中利用mod_rewrite实现防盗链)
- thinkphp5框架怎么打开(thinkphp5.1框架中容器Container和门面Facade的实现方法分析)
- phpzip压缩原理(PHP生成zip压缩包的常用方法示例)
- php面向对象教程理解(PHP面向对象程序设计之构造方法和析构方法详解)
- php网页生成程序(php生成静态页面并实现预览功能)
- thinkphp微信开发实例(ThinkPHP框架下微信支付功能总结踩坑笔记)
- dedecms怎么调用标签(dedecms直接访问域名不能跳转到index.php)
- mac版本php环境搭建(在Mac OS X中配置Apache+PHP+MySQL运行环境的详细步骤)
- php代码最可靠的加密方式(php DES加密算法实例分析)
- apachephp环境搭建(apache集成php7.3.5的详细步骤)
- 手机QQ与小米路由器在一起 明天揭晓,敬请期待(手机QQ与小米路由器在一起)
- 小米音乐与 QQ 音乐合作,便捷迁移会员(小米音乐与QQ音乐合作)
- 小米推出米兔儿童电话手表奥特曼版,799 元,支持微信 QQ(小米推出米兔儿童电话手表奥特曼版)
- 贾怀胤唱《白龙马》 炸场 了 没想到京剧还能这么玩(贾怀胤唱白龙马)
- 白龙马的改编学生版,快来看看(白龙马的改编学生版)
- 萌娃唱《白龙马》走红,那生动的小表情,网友直呼 简直是戏精(萌娃唱白龙马走红)
热门推荐
- python time模块记录时间(Python Datetime模块和Calendar模块用法实例分析)
- pythonlogging模块教学(详解Python logging调用Logger.info方法的处理过程)
- mysql参数说明(MySQL中你可能忽略的COLLATION实例详解)
- mysql数据库触发器(MySQL中使用游标触发器的方法)
- 搭建web服务器与设置(怎样在Win7系统中搭建Web服务器)
- thinkphp5如何实现消息队列(thinkPHP5.1框架使用SemanticUI实现分页功能示例)
- djangoapi接口开发(Django使用AJAX调用自己写的API接口的方法)
- linux 长模式查看文件(linux 查看文件系统类型实例方法)
- docker容器根据进程号查看端口(Docker 通过端口来连接一个容器的实现)
- mysql8.0.23.0官方安装手册(MySQL8.0.23安装超详细教程)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9