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封装api(PHP常用的类封装小结4个工具类)
- php中trim函数(PHP中ltrim函数的用法与实例讲解)
- php数据库怎么获得表单(php如何把表单内容提交到数据库)
- 宝塔面板phpMyAdmin错误教程(宝塔面板phpMyAdmin报错502 Bad Gateway nginx解决方法)
- php逐行读写文件(PHP实现读取文件夹及批量重命名文件操作示例)
- php网页采集教程交流(PHP实现的抓取小说网站内容功能示例)
- dedecms怎么调用标签(dedecms直接访问域名不能跳转到index.php)
- php制作随机编号(PHP生成随机码的思路与方法实例探索)
- thinkphp5怎么设置默认返回(thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结)
- 怎么用php开发验证码(PHP简单验证码功能机制实例详解)
- think php上传服务器(ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例)
- php上传文件的要求(PHP 文件上传限制问题)
- php运用redis实现抢购实例(PHP+redis实现微博的拉模型案例详解)
- php秒杀实现代码(php无限极分类实现方法分析)
- thinkphpmodel使用教程(Thinkphp5.0 框架Model模型简单用法分析)
- 在php中遍历数组使用(PHP读取远程txt文档到数组并实现遍历)
- 体坛传媒LOGO全新升级,多元发展迈出坚实步伐(体坛传媒LOGO全新升级)
- 超撩人治愈的绝美水彩,原来出自她之手 一笔一画令无数人沉醉(超撩人治愈的绝美水彩)
- 新手的勾线(新手的勾线)
- ()
- 书法欣赏 宋.志南诗《绝句》(宋.志南诗绝句)
- 每周一首古诗 《绝句》(每周一首古诗绝句)
热门推荐
- php面向对象怎么用(PHP面向对象程序设计之对象克隆clone和魔术方法__clone用法分析)
- php面对对象的三大特性(php中对象引用和复制实例分析)
- mysql8.0配置优化参数(MySQL 8.0 新特性之检查约束的实现)
- sqlserver表分区步骤(行转列之SQL SERVER PIVOT与用法详解)
- display:inline、block、inline-block 的区别
- 盘点CSS Selectors Level4中新增的选择器(盘点CSS Selectors Level4中新增的选择器)
- c语言获取系统日期函数(C# ling to sql 取多条记录最大时间)
- python读取和写入数据excel(Python向excel中写入数据的方法)
- 怎样在python中散点图(python使用Plotly绘图工具绘制散点图、线形图)
- docker常用命令详解(docker常用命令总结推荐)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9