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
php面向对象全攻略 (三)特殊的引用“$this”的使用
Sep 30 PHP
php pack与unpack 摸板字符字符含义
Oct 29 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
May 10 PHP
PHP中使用TCPDF生成PDF文档实例
Jul 01 PHP
PHP超全局数组(Superglobals)介绍
Jul 01 PHP
详解PHP数组赋值方法
Nov 07 PHP
magento后台无法登录解决办法的两种方法
Dec 09 PHP
laravel5.4生成验证码的实例讲解
Aug 05 PHP
PHP Class SoapClient not found解决方法
Jan 20 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
Feb 15 PHP
PHP实现简单日历类编写
Aug 28 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 数组基础知识小结
2010/08/20 PHP
通过php修改xml文档内容的方法
2015/01/23 PHP
thinkPHP实现的省市区三级联动功能示例
2017/05/05 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
JS格式化数字金额用逗号隔开保留两位小数
2013/10/18 Javascript
JavaScript极简入门教程(三):数组
2014/10/25 Javascript
JavaScript头像上传插件源码分享
2016/03/29 Javascript
阻止表单提交按钮多次提交的完美解决方法
2016/05/16 Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
2016/06/24 Javascript
浅谈Node.js:理解stream
2016/12/08 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
2016/12/08 Javascript
AngularJS表单提交实例详解
2017/02/18 Javascript
vue使用drag与drop实现拖拽的示例代码
2017/09/07 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
2020/11/09 Javascript
详解Django框架中的视图级缓存
2015/07/23 Python
Python 中 list 的各项操作技巧
2017/04/13 Python
python数据分析数据标准化及离散化详解
2018/02/26 Python
TensorFLow用Saver保存和恢复变量
2018/03/10 Python
pytorch: tensor类型的构建与相互转换实例
2018/07/26 Python
python中copy()与deepcopy()的区别小结
2018/08/03 Python
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
Python 中的 global 标识对变量作用域的影响
2019/08/12 Python
python 解决tqdm模块不能单行显示的问题
2020/02/19 Python
keras中的backend.clip用法
2020/05/22 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
2020/06/15 Python
加拿大消费电子和手机购物网站:The Source
2017/01/28 全球购物
美国最大的半成品净菜电商:Blue Apron(蓝围裙)
2018/04/27 全球购物
介绍一下Ruby的多线程处理
2013/02/01 面试题
实习期自我鉴定
2013/10/11 职场文书
大学毕业生通用自荐信范文
2013/10/31 职场文书
借款担保书范文
2014/05/13 职场文书
妇女工作先进事迹
2014/08/17 职场文书
党员自我评议个人对照检查材料
2014/09/16 职场文书
内勤岗位职责范本
2015/04/13 职场文书
学校勤俭节约倡议书
2015/04/29 职场文书