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 相关文章推荐
最省空间的计数器
Oct 09 PHP
PHP+javascript液晶时钟
Oct 09 PHP
判断Keep-Alive模式的HTTP请求的结束的实现代码
Aug 06 PHP
非常好用的两个PHP函数 serialize()和unserialize()
Feb 04 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
Mar 06 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
Aug 06 PHP
PHP的PDO预定义常量讲解
Jan 24 PHP
php实现的数组转xml案例分析
Sep 28 PHP
关于Laravel参数验证的一些疑与惑
Nov 19 PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
Mar 09 PHP
PHP7 标准库修改
Mar 09 PHP
如何在Mac上通过docker配置PHP开发环境
May 29 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
我的群发邮件程序
2006/10/09 PHP
初品cakephp 入门基础
2012/02/16 PHP
safari,opera嵌入iframe页面cookie读取问题解决方法
2010/06/23 Javascript
JavaScript 计算图片加载数量的代码
2011/01/01 Javascript
jquery图片上下tab切换效果
2011/03/18 Javascript
jquery 延迟执行实例介绍
2013/08/20 Javascript
Canvas实现放射线动画效果
2017/02/15 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
vuejs实现标签选项卡动态更改css样式的方法
2018/05/31 Javascript
Vue-cli3项目配置Vue.config.js实战记录
2018/07/29 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
2019/04/10 jQuery
JavaScript动态检测密码强度原理及实现方法详解
2019/06/11 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
vue穿梭框实现上下移动
2021/01/29 Vue.js
详解Python中的文件操作
2016/08/28 Python
Python基于回溯法解决01背包问题实例
2017/12/06 Python
Flask实现图片的上传、下载及展示示例代码
2018/08/03 Python
Python 中使用 PyMySQL模块操作数据库的方法
2019/11/10 Python
Python中用pyinstaller打包时的图标问题及解决方法
2020/02/17 Python
python3注册全局热键的实现
2020/03/22 Python
Python连接mysql数据库及简单增删改查操作示例代码
2020/08/03 Python
全网最细 Python 格式化输出用法讲解(推荐)
2021/01/18 Python
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
2016/12/30 HTML / CSS
HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)
2017/01/05 HTML / CSS
HTML5 video进入全屏和退出全屏的实现方法
2020/07/28 HTML / CSS
Giglio德国网上精品店:奢侈品服装和配件
2016/09/23 全球购物
法国和欧洲海边和滑雪度假:Pierre & Vacances
2017/01/04 全球购物
new修饰符是起什么作用
2015/06/28 面试题
专业幼师实习生自我鉴定范文
2013/12/08 职场文书
有趣的广告词
2014/03/18 职场文书
优秀食品类广告词
2014/03/19 职场文书
《特殊的葬礼》教学反思
2014/04/27 职场文书
在酒桌上的敬酒词
2015/08/12 职场文书
对Keras自带Loss Function的深入研究
2021/05/25 Python
Python 类,对象,数据分类,函数参数传递详解
2021/09/25 Python