PHP Trait功能与用法实例分析


Posted in PHP onJune 03, 2020

本文实例讲述了PHP Trait功能与用法。分享给大家供大家参考,具体如下:

Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制。

1.如果引入的Trait有同名的方法

trait A{
 public function eat(){
  echo 'A-eat';
 }
 
 public function say(){
  echo 'A-say';
 }
}
 
trait B{
 
 public function eat(){
  echo 'B-eat';
 }
 
 public function say(){
  echo 'B-say';
 }
}
 
class People{
 use A,B{
  A::eat insteadof B;
  B::eat as eatbak;
  B::say insteadof A;
 }
}
 
$people = new People();
$people->eat();
echo "<br/>";
$people->say();
echo "<br/>";
$people->eatbak();

运行结果:

A-eat
B-say
B-eat

2.修改访问控制

<?php
trait Test {
 public function say() {
  echo 'say hello';
 }
}
 
class People {
 use Test { say as protected; }
}
 
$people = new People();
 
$people->say();

运行结果:

Fatal error: Call to protected method People::say() from context '' in D:\phpdemo\trait_Demo.php on line 14

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
Dec 16 PHP
PHP对象转换为数组函数(递归方法)
Feb 04 PHP
PHP遍历数组的几种方法
Mar 22 PHP
解析CodeIgniter自定义配置文件
Jun 18 PHP
CodeIgniter输出中文乱码的两种解决办法
Jun 12 PHP
PHP中判断文件存在使用is_file还是file_exists?
Apr 03 PHP
php+ajax+json 详解及实例代码
Dec 12 PHP
php生成图片缩略图功能示例
Feb 22 PHP
php使用curl实现简单模拟提交表单功能
May 15 PHP
php mysql数据库操作类(实例讲解)
Aug 06 PHP
PHP编程实现计算抽奖概率算法完整实例
Aug 09 PHP
Laravel中的Blade模板引擎示例详解
Oct 10 PHP
PHP时间相关常用函数用法示例
Jun 03 #PHP
ThinkPHP5框架中使用JWT的方法示例
Jun 03 #PHP
Thinkphp5框架异常处理操作实例分析
Jun 03 #PHP
Thinkphp5框架中引入Markdown编辑器操作示例
Jun 03 #PHP
PHP数组基本用法与知识点总结
Jun 02 #PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
Jun 02 #PHP
PHP与Web页面交互操作实例分析
Jun 02 #PHP
You might like
收音机史话 - 1960年代前后的DIY
2021/03/02 无线电
PHP 安全检测代码片段(分享)
2013/07/05 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
关于实现代码语法标亮 dp.SyntaxHighlighter
2007/02/02 Javascript
js实现的网页颜色代码表全集
2007/07/17 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
jQuery点击改变class并toggle及toggleClass()方法定义用法
2015/12/11 Javascript
Nodejs爬虫进阶教程之异步并发控制
2016/02/15 NodeJs
JavaScript数组方法大全(推荐)
2016/07/05 Javascript
Ajax使用原生态JS验证用户名是否存在
2020/05/26 Javascript
浅谈AngularJS中ng-class的使用方法
2016/11/11 Javascript
JS仿Base.js实现的继承示例
2017/04/07 Javascript
JavaScript实现一个空中避难的小游戏
2017/06/06 Javascript
Vuex实现计数器以及列表展示效果
2018/03/10 Javascript
JS选取DOM元素常见操作方法实例分析
2018/12/10 Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
2019/04/22 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
2019/11/09 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
2020/11/12 Javascript
[03:49]辉夜杯现场龙骑士COSER秀情商“我喜欢芬队!”
2015/12/27 DOTA
Python操作RabbitMQ服务器实现消息队列的路由功能
2016/06/29 Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
2017/07/17 Python
PyQt5每天必学之进度条效果
2018/04/19 Python
实用自动化运维Python脚本分享
2018/06/04 Python
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
俄罗斯的精英皮具:Wittchen
2018/01/29 全球购物
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
高分子材料与工程专业推荐信
2013/12/01 职场文书
八年级生物教学反思
2014/01/22 职场文书
鸿星尔克广告词
2014/03/21 职场文书
岗位竞聘演讲稿范文
2014/04/24 职场文书
升旗仪式演讲稿
2014/05/08 职场文书
社区禁毒工作方案
2014/06/02 职场文书
postman中form-data、x-www-form-urlencoded、raw、binary的区别介绍
2022/01/18 HTML / CSS
Nginx如何配置根据路径转发详解
2022/07/23 Servers