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扩展安装示例(php扩展开发入门demo示例)
- php中三种变量的作用区域(PHP global全局变量经典应用与注意事项分析附$GLOBALS用法对比)
- php怎么引用文件(php引用和拷贝的区别知识点总结)
- php上传文件的要求(PHP大文件分块上传功能实例详解)
- php排序代码详解(PHP实现数据四舍五入的方法小结4种方法)
- php mq使用方法(PHP使用ActiveMQ实现消息队列的方法详解)
- php字符串教程学习(php学习笔记之字符串常见操作总结)
- python与php(解决Python3 被PHP程序调用执行返回乱码的问题)
- thinkphp中view视图的作用(Thinkphp5.0框架视图view的模板布局用法分析)
- php 5与7有什么改变(php5与php7的区别点总结)
- php环境搭建windows系统(Windows环境下安装PHP Pear的方法图文教程)
- php日期和时间怎么设置(PHP实现时间日期友好显示实现代码)
- thinkphp框架多文件上传完整代码(Thinkphp5 自定义上传文件名的实现方法)
- php不能用mysql(php写入mysql中文乱码的实例解决方法)
- php数组是怎么实现的(PHP里的$_GET数组介绍)
- mac电脑安装php环境(Mac下搭建php开发环境教程)
- 乾隆为何这么喜爱白塔原因是什么(乾隆为何这么喜爱白塔原因是什么)
- 逐渐消失的东北八大怪现象,进步的社会里我们遗失的是什么(逐渐消失的东北八大怪现象)
- 今日大雪,大雪养生这样做,一年都有好气色(大雪养生这样做)
- 粗盐是什么 粗盐的功效与作用(粗盐的功效与作用)
- 会 吃人 的客机 从天堂到地狱只需5分钟,图-104如何做到(会吃人的客机)
- 男人犯的错,为什么要女人来承担(为什么要女人来承担)
热门推荐
- pandas数据分组后的处理(详解pandas如何去掉、过滤数据集中的某些值或者某些行?)
- 怎么用python做随机矩阵(python实现杨氏矩阵查找)
- nginx-rtmp-module 配置(Nginx搭建rtmp直播服务器实现代码)
- element-ui 菜单悬停样式(js如何构造elementUI树状菜单的数据结构详解)
- html5带图标下拉菜单(html5小程序飞入购物车抛物线绘制运动轨迹点)
- jquery的动画效果api(jQuery框架实现元素显示及隐藏三种动画方式)
- javascript登录转注册界面(JavaScript实现登录窗体)
- nginx配置两个前端web服务(你真的了解如何将Nginx配置为Web服务器吗)
- phpredis怎么测试成功(PHP+redis实现的限制抢购防止商品超发功能详解)
- python解析csv文件存到数据库(python读取csv和txt数据转换成向量的实例)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9