php入门基本笔记(PHP之认识二关于Traits的用法详解)
类别:编程学习 浏览量:1359
时间:2022-03-29 03:38:05 php入门基本笔记
PHP之认识二关于Traits的用法详解PHP是单继承的语言,在PHP 5.4 Traits出现之前,PHP的类无法同时从两个基类继承属性或方法。Traits的出现解决了这一问题。
1、通过在类中使用use关键字声明要组合的Trait名称,而具体某个Trait的声明使用trait关键词,Trait不能直接实例化。具体用法:
|
<?php trait Person{ public $name = "person" ; public function talk(){ echo "我是{$this->name}<br/>" ; } } class Teacher{ public function speak(){ echo "我能教书<br/>" ; } } class Student extends Teacher{ use Person; public function study(){ echo "我需要学习<br/>" ; } } $student = new Student(); $student ->talk(); $student ->speak(); $student ->study(); ?> |
2、Trait、父类和本类中都存在某个同名的属性或者方法是,会保留哪一个?
|
<?php trait Person{ public $name = "person" ; public function talk(){ echo "我是{$this->name}<br/>" ; } public function hello() { echo "hello Person<br/>" ; } } class Teacher{ public function talk(){ echo "我能教书<br/>" ; } public function hello() { echo "hello Teacher<br/>" ; } } class Student extends Teacher{ use Person; public function talk(){ echo "我需要学习<br/>" ; } } $student = new Student(); $student ->talk(); $student ->hello(); |
结果输出
我需要学习
hello Person
由结果可知
//trait的方法覆盖了基类Person中的方法,所以Person中的方法hello和speak被覆盖
//当方法或属性同名时,当前类中的方法会覆盖 trait的方法,所以此处talk会覆盖trait中的talk
3、如果多个Trait中包含同名方法或者属性时,会怎样呢?答案是当组合的多个Trait包含同名属性或者方法时,需要明确声明解决冲突,否则会产生一个致命错误。使用insteadof和as操作符来解决冲突,insteadof是使用某个方法替代另一个,而as是给方法取一个别名
以上所述是小编给大家介绍的PHP Traits的用法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
原文链接:https://blog.csdn.net/qq_41166992/article/details/89195553
您可能感兴趣
- php框架laravel使用(laravel5环境隐藏index.php后缀apache的方法)
- phpredis使用场景(php和redis实现秒杀活动的流程)
- phpsession如何用(如何解决PHP获取不到SESSION信息之一般情况)
- phpstudy安装包打不开(phpStudy访问速度慢和启动失败的解决办法)
- php密钥怎么加密(php校验公钥是否可用的实例方法)
- php对象和类(PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例)
- centos安装php5.6(Centos7 Yum安装PHP7.2流程教程详解)
- phpredis怎么设置队列(php使用lua+redis实现限流,计数器模式,令牌桶模式)
- thinkphp支付宝支付(thinkPHP和onethink微信支付插件分享)
- php怎么实现多线程(PHP实现的多进程控制demo示例)
- php的流程控制语句(PHP基于swoole多进程操作示例)
- thinkphp源码上传(ThinkPHP框架实现FTP图片上传功能示例)
- php框架创建控制器代码(php连接sftp的作用以及实例代码)
- php7.4 废弃功能(浅析PHP7 的垃圾回收机制)
- php语法基础知识(PHP中16个高危函数整理)
- 织梦cms漏洞怎么解决(织梦cms、帝国cms、PHPcms优缺点解析)
- ()
- 对你思念入骨的女人,跟你见面时会有这几种表现,藏都藏不住(对你思念入骨的女人)
- 纳兰性德绝美作,一场重逢,成就最后一首称得上惊艳的《如梦令》(纳兰性德绝美作)
- 如何快速赚钱(如何快速赚钱方法真实有效)
- 这里输入关键词(如何输入关键词)
- 熊猫中国国宝(熊猫国宝酒53酱香)
热门推荐
- vue动态路由实现权限控制(vue2/vue3路由权限管理的方法实例)
- php系统转换的三种方式(PHP容器类的两种实现方式示例)
- computer browser服务启动后停止(用户IIS APPPOOLDefaultAppPool登录失败的解决方法)
- 阿里云mysql升级注意事项(阿里云mysql空间清理的方法)
- spring-boot 内置tomcat启动(centos环境下使用tomcat 部署SpringBoot的war包)
- 云服务器租用应该注意哪些事项(云服务器托管需要注意的细节)
- 织梦标签怎么设置网站(织梦模板DEDECMS文章页实现让用户选择字体大小的代码的方法)
- 如何清除浮动元素带来的影响(关于清除浮动塌陷的几种方法总结)
- python渗透攻击(Python实现DDos攻击实例详解)
- 阿里云服务器怎么设置防御网站(阿里云服务器的一些常用安全优化方法整理)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9