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数组
Oct 09 PHP
调整优化您的LAMP应用程序的5种简单方法
Jun 26 PHP
php的sprintf函数的用法 控制浮点数格式
Feb 14 PHP
php通过字符串调用函数示例
Mar 02 PHP
CI框架入门示例之数据库取数据完整实现方法
Nov 05 PHP
PHP遍历数组的三种方法及效率对比分析
Feb 12 PHP
PHP将session信息存储到数据库的类实例
Mar 04 PHP
PHP中使用curl入门教程
Jul 02 PHP
php+mysql+jquery实现日历签到功能
Feb 27 PHP
浅谈php中变量的数据类型判断函数
Mar 04 PHP
Yii框架应用组件用法实例分析
May 15 PHP
linux mint下安装phpstorm2020包括JDK部分的教程详解
Sep 17 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
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
thinkPHP5 ACL用户权限模块用法详解
2017/05/10 PHP
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
jquery isType() 类型判断代码
2011/02/14 Javascript
NodeJS制作爬虫全过程
2014/12/22 NodeJs
JavaScript字符串常用的方法
2016/03/10 Javascript
学习Angularjs分页指令
2016/07/01 Javascript
js严格模式总结(分享)
2016/08/22 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
2016/10/26 Javascript
JavaScript仿微博输入框效果(案例分析)
2016/12/06 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
2017/03/03 Javascript
javascript 动态生成css代码的两种方法
2017/03/17 Javascript
实例详解vue.js浅度监听和深度监听及watch用法
2018/08/16 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
[19:26]TNC vs EG (BO3)
2018/06/07 DOTA
[44:33]EG vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python安装Numpy和matplotlib的方法(推荐)
2017/11/02 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
2018/03/22 Python
对numpy数据写入文件的方法讲解
2018/07/09 Python
python flask web服务实现更换默认端口和IP的方法
2019/07/26 Python
python+jinja2实现接口数据批量生成工具
2019/08/28 Python
Python paramiko 模块浅谈与SSH主要功能模拟解析
2020/02/29 Python
Python 转移文件至云对象存储的方法
2021/02/07 Python
一款纯css3实现的响应式导航
2014/10/31 HTML / CSS
皇马官方商城:Real Madrid Store
2016/09/02 全球购物
英国综合网上购物商城:The Hut
2018/07/03 全球购物
计算机应用专业推荐信
2013/11/13 职场文书
工作自荐信
2013/12/11 职场文书
教师个人剖析材料
2014/02/05 职场文书
领导班子作风建设剖析材料
2014/10/11 职场文书
民主评议党员自我鉴定
2014/10/21 职场文书
React Fragment介绍与使用详解
2021/11/11 Javascript
Mysql忘记密码解决方法
2022/02/12 MySQL
python库Tsmoothie模块数据平滑化异常点抓取
2022/06/10 Python