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日期时间函数的高级应用技巧
May 16 PHP
PHP基础知识回顾
Aug 16 PHP
解析PHP中intval()等int转换时的意外异常情况
Jun 21 PHP
PHP函数eval()介绍和使用示例
Aug 20 PHP
ucenter中词语过滤原理分析
Jul 13 PHP
Yii实现Command任务处理的方法详解
Jul 14 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
Aug 12 PHP
php自定义函数实现汉字转换utf8编码的方法
Sep 29 PHP
PHP对象实例化单例方法
Jan 19 PHP
php中html_entity_decode实现HTML实体转义
Jun 13 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
Feb 28 PHP
PHP实现文件上传操作和封装
Mar 04 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
PHP基于GD库的图像处理方法小结
2016/09/27 PHP
WHOOPS PHP调试库的使用
2017/09/29 PHP
PHP实现递归的三种方法
2020/07/04 PHP
PHP与Web页面的交互示例详解一
2020/08/04 PHP
form中限制文本字节数js代码
2007/06/10 Javascript
firefox火狐浏览器与与ie兼容的2个问题总结
2010/07/20 Javascript
jCallout 轻松实现气泡提示功能
2013/09/22 Javascript
jQuery中bind()方法用法实例
2015/01/19 Javascript
jQuery对JSON数据进行排序输出的方法
2015/06/24 Javascript
js+css简单实现网页换肤效果
2015/12/29 Javascript
一个简单不报错的summernote 图片上传案例
2016/07/11 Javascript
解析利用javascript如何判断一个数为素数
2016/12/08 Javascript
树结构之JavaScript
2017/01/24 Javascript
angularJs的ng-class切换class
2017/06/23 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
2017/07/23 Javascript
实例讲解React 组件
2020/07/07 Javascript
ES6中的Javascript解构的实现
2020/10/30 Javascript
[01:34:42]NAVI vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python对html代码进行escape编码的方法
2015/05/04 Python
python dict 字典 以及 赋值 引用的一些实例(详解)
2017/01/20 Python
Python标准库sched模块使用指南
2017/07/06 Python
python merge、concat合并数据集的实例讲解
2018/04/12 Python
Python @property使用方法解析
2019/09/17 Python
使用Python测试Ping主机IP和某端口是否开放的实例
2019/12/17 Python
Python多线程Threading、子线程与守护线程实例详解
2020/03/24 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
Timberland法国官网:购买靴子、鞋子、衣服、夹克和配饰
2019/11/30 全球购物
网络工程与软件技术毕业生自荐信
2013/09/24 职场文书
化学相关工作求职信
2013/10/02 职场文书
护士个人自我鉴定
2014/03/24 职场文书
小学生个人先进事迹材料
2014/05/08 职场文书
个人学习群众路线心得体会
2014/11/05 职场文书
办公用房租赁协议书
2014/11/29 职场文书
求职简历自我评价范文
2015/03/10 职场文书
小学六一儿童节活动总结
2015/05/05 职场文书
httpclient调用远程接口的方法
2022/08/14 Java/Android