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 相关文章推荐
支持oicq头像的留言簿(二)
Oct 09 PHP
PHP中常用数组处理方法实例分析
Aug 30 PHP
PHP 数组排序方法总结 推荐收藏
Jun 30 PHP
thinkphp实现面包屑导航(当前位置)例子分享
May 10 PHP
php检查字符串中是否包含7位GSM字符的方法
Mar 17 PHP
Laravel 5框架学习之子视图和表单复用
Apr 09 PHP
常见的四种POST 提交数据方式(小总结)
Oct 08 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
Dec 05 PHP
PHP面向对象学习之parent::关键字
Jan 18 PHP
Laravel框架查询构造器 CURD操作示例
Sep 04 PHP
laravel config文件配置全局变量的例子
Oct 13 PHP
PHP标准库 (SPL)――Countable用法示例
Jun 05 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
桌面中心(二)数据库写入
2006/10/09 PHP
PHP常用代码大全(新手入门必备)
2010/06/29 PHP
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
PHP7新增运算符用法实例分析
2016/09/26 PHP
JQuery 学习笔记 选择器之五
2009/07/23 Javascript
Javascript的构造函数和constructor属性
2010/01/09 Javascript
js相册效果代码(点击创建即可)
2013/04/16 Javascript
JavaScript中setInterval的用法总结
2013/11/20 Javascript
js解析json读取List中的实体对象示例
2014/03/11 Javascript
html的DOM中Event对象onblur事件用法实例
2015/01/21 Javascript
JQuery调用绑定click事件的3种写法
2015/03/28 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
JavaScript的设计模式经典之建造者模式
2016/02/24 Javascript
bootstrapValidator表单验证插件学习
2016/12/30 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
2017/02/16 Javascript
javascript 初学教程及五子棋小程序的简单实现
2017/07/04 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
2017/07/19 Javascript
解决vue单页使用keep-alive页面返回不刷新的问题
2018/03/13 Javascript
js实现删除json中指定的元素
2020/09/22 Javascript
一步步教你用Python实现2048小游戏
2017/01/19 Python
Python入门_条件控制(详解)
2017/05/16 Python
Python3 Random模块代码详解
2017/12/04 Python
python脚本监控Tomcat服务器的方法
2018/07/06 Python
对python PLT中的image和skimage处理图片方法详解
2019/01/10 Python
Python代码实现删除一个list里面重复元素的方法
2019/04/02 Python
python实现统计文本中单词出现的频率详解
2019/05/20 Python
python numpy库linspace相同间隔采样的实现
2020/02/25 Python
keras topN显示,自编写代码案例
2020/07/03 Python
纯CSS3实现带动画效果导航菜单无需js
2013/09/27 HTML / CSS
新西兰廉价汽车租赁:Snap Rentals
2018/09/14 全球购物
揭牌仪式主持词
2014/03/19 职场文书
《鲁班和橹板》教学反思
2014/04/27 职场文书
2014年工程工作总结
2014/11/25 职场文书
教师节领导致辞
2015/07/29 职场文书
分享3个非常实用的 Python 模块
2022/03/03 Python