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 相关文章推荐
FCKeditor添加自定义按钮
Mar 27 PHP
PHP 检查扩展库或函数是否可用的代码
Apr 06 PHP
phpMyAdmin 链接表的附加功能尚未激活的问题
Aug 01 PHP
基于php在各种web服务器的运行模式详解
Jun 03 PHP
PHP四舍五入精确小数位及取整
Jan 14 PHP
PHP实现获取域名的方法小结
Nov 05 PHP
Codeigniter发送邮件的方法
Mar 19 PHP
PHP上传文件参考配置大文件上传
Dec 16 PHP
PHP实现图片上传并压缩
Dec 22 PHP
php反射类ReflectionClass用法分析
May 12 PHP
PHP耦合设计模式实例分析
Aug 08 PHP
PHP正则表达式笔记与实例详解
May 09 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的垃圾回收机制详解
2013/10/28 PHP
php判断字符串在另一个字符串位置的方法
2014/02/27 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
分享10篇优秀的jQuery幻灯片制作教程及应用案例
2011/04/16 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
给页面渲染时间加速 干掉Dom Level 0 Event
2012/12/19 Javascript
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
jqGrid日期格式的判断示例代码(开始日期与结束日期)
2013/11/08 Javascript
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
在HTML代码中使用JavaScript代码的例子
2014/10/16 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
2015/06/05 Javascript
window.location.reload 刷新使用分析(去对话框)
2015/11/11 Javascript
全面理解JavaScript中的继承(必看)
2016/06/16 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
2016/11/25 Javascript
JS实现简单的二元方程计算器功能示例
2017/01/03 Javascript
webpack实现一个行内样式px转vw的loader示例
2018/09/13 Javascript
angular将html代码输出为内容的实例
2018/09/30 Javascript
Vue用v-for给循环标签自身属性添加属性值的方法
2018/10/18 Javascript
Vue学习笔记之计算属性与侦听器用法
2019/12/07 Javascript
[02:19]DOTA选手解说齐贺岁
2018/02/11 DOTA
python转换字符串为摩尔斯电码的方法
2015/07/06 Python
Python内置函数OCT详解
2016/11/09 Python
python 读取txt中每行数据,并且保存到excel中的实例
2018/04/29 Python
python学习之hook钩子的原理和使用
2018/10/25 Python
Python自动发送邮件的方法实例总结
2018/12/08 Python
python+mysql实现学生信息查询系统
2019/02/21 Python
python机器人运动范围问题的解答
2019/04/29 Python
pytorch: Parameter 的数据结构实例
2019/12/31 Python
CSS3区域模块region相关编写示例
2015/08/28 HTML / CSS
关于解决iframe标签嵌套问题的解决方法
2020/03/04 HTML / CSS
Linux上比较文件的命令都有哪些
2012/02/24 面试题
初中生自我评价
2014/02/01 职场文书
大学生优秀自荐信范文
2014/02/25 职场文书
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
工作保证书怎么写
2015/02/28 职场文书