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 相关文章推荐
一个odbc连mssql分页的类
Oct 09 PHP
PHP 获取远程文件内容的函数代码
Mar 24 PHP
win2003服务器使用WPS的COM组件的一些问题解决方法
Jan 11 PHP
php class类的用法详细总结
Oct 17 PHP
PHP使用glob函数遍历目录或文件夹的方法
Dec 16 PHP
php中smarty区域循环的方法
Jun 11 PHP
php创建桌面快捷方式实现方法
Dec 31 PHP
CodeIgniter配置之SESSION用法实例分析
Jan 19 PHP
php常用图片处理类
Mar 16 PHP
PHP实现mysqli批量执行多条语句的方法示例
Jul 22 PHP
PHP创建自己的Composer包方法
Apr 09 PHP
Laravel 6.2 中添加了可调用容器对象的方法
Oct 22 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数据库抽象层 PDO
2011/05/07 PHP
php表单习惯用的正则表达式
2017/10/11 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
2019/12/12 PHP
datePicker——日期选择控件(with jquery)
2007/02/20 Javascript
js与applet相互调用的方法
2016/06/22 Javascript
整理关于Bootstrap列表组的慕课笔记
2017/03/29 Javascript
详解Chart.js轻量级图表库的使用经验
2018/05/22 Javascript
如何解决vue2.0下IE浏览器白屏问题
2018/09/13 Javascript
vue中,在本地缓存中读写数据的方法
2018/09/21 Javascript
详解如何用typescript开发koa2的二三事
2018/11/13 Javascript
微信小程序如何调用新闻接口实现列表循环
2019/07/02 Javascript
Vuex中实现数据状态查询与更改
2019/11/08 Javascript
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python 文件和输入输出小结
2013/10/09 Python
Python实现根据指定端口探测服务器/模块部署的方法
2014/08/25 Python
python获取文件版本信息、公司名和产品名的方法
2014/10/05 Python
利用python3随机生成中文字符的实现方法
2017/11/24 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
2018/12/10 Python
python已协程方式处理任务实现过程
2019/12/27 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
Python实现AES加密,解密的两种方法
2020/10/03 Python
AmazeUI导航的示例代码
2020/08/14 HTML / CSS
美国知名的在线旅游服务网站:Priceline
2016/07/23 全球购物
卡塔尔航空官方网站:Qatar Airways
2017/02/08 全球购物
美国领先的医疗警报服务:Philips Lifeline
2018/03/12 全球购物
struct和class的区别
2015/11/20 面试题
Python文件操作的面试题
2013/06/22 面试题
个人违纪检讨书
2014/09/15 职场文书
助学感谢信范文
2015/01/21 职场文书
化验员岗位职责
2015/02/14 职场文书
紧急通知
2015/04/17 职场文书
上诉状格式
2015/05/23 职场文书
Python爬虫之爬取哔哩哔哩热门视频排行榜
2021/04/28 Python
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
2021/05/26 Python
SQL Server数据库备份和恢复数据库的全过程
2022/06/14 SQL Server
鸿蒙3.0体验感怎么样? 鸿蒙3.0系统评测向
2022/08/14 数码科技