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生成EXCEL的东东
Oct 09 PHP
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
Nov 21 PHP
php之readdir函数用法实例
Nov 13 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
Dec 24 PHP
php中实现可以返回多个值的函数实例
Mar 21 PHP
php根据用户语言跳转相应网页
Nov 04 PHP
php实现微信发红包
Dec 05 PHP
CodeIgniter钩子用法实例详解
Jan 20 PHP
PHP实现页面静态化的超简单方法
Sep 06 PHP
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
Dec 09 PHP
Laravel框架中Blade模板的用法示例
Aug 30 PHP
thinkphp5.0自定义验证规则使用方法
Nov 16 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
codeigniter实现get分页的方法
2015/07/10 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
2020/04/20 PHP
用jquery实现点击栏目背景色改变
2012/12/10 Javascript
基于jQuery实现图片的前进与后退功能
2013/04/24 Javascript
JS中判断null、undefined与NaN的方法
2014/03/26 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
2015/01/05 Javascript
JavaScript生成随机字符串的方法
2015/03/19 Javascript
JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
2015/06/19 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
2016/01/22 Javascript
jQuery 监控键盘一段时间没输入
2016/04/22 Javascript
浅谈html转义及防止javascript注入攻击的方法
2016/12/04 Javascript
webstorm添加vue.js支持的方法教程
2017/07/05 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
2017/08/14 Javascript
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
Webpack之tree-starking 解析
2018/09/11 Javascript
浅谈Node 异步IO和事件循环
2019/05/05 Javascript
微信小程序实现下拉刷新动画
2019/06/21 Javascript
js模拟F11页面全屏显示
2019/09/17 Javascript
react国际化化插件react-i18n-auto使用详解
2020/03/31 Javascript
js+audio实现音乐播放器
2020/09/13 Javascript
在VUE中使用lodash的debounce和throttle操作
2020/11/09 Javascript
python 布尔操作实现代码
2013/03/23 Python
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
python爬取内容存入Excel实例
2019/02/20 Python
Python获取统计自己的qq群成员信息的方法
2019/11/15 Python
Django 解决开发自定义抛出异常的问题
2020/05/21 Python
如何用PyPy让你的Python代码运行得更快
2020/12/02 Python
python给list排序的简单方法
2020/12/10 Python
一款简洁的纯css3代码实现的动画导航
2014/10/31 HTML / CSS
在HTML5中使用MathML数学公式的简单讲解
2016/02/19 HTML / CSS
财会自我鉴定范文
2013/12/27 职场文书
销售辞职报告范文
2014/01/12 职场文书
听证通知书
2015/04/24 职场文书
运动会加油稿30字
2015/07/21 职场文书
乡镇司法所2015年度工作总结
2015/10/14 职场文书