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中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
Sep 05 PHP
php中is_null,empty,isset,unset 的区别详细介绍
Apr 28 PHP
php var_export与var_dump 输出的不同
Aug 09 PHP
从零开始学YII2框架(六)高级应用程序模板
Aug 20 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
Nov 05 PHP
ThinkPHP中Session用法详解
Nov 29 PHP
php生成shtml类用法实例
Dec 09 PHP
教你在PHPStorm中配置Xdebug
Jul 27 PHP
php析构函数的简单使用说明
Aug 24 PHP
php版微信数据统计接口用法示例
Oct 12 PHP
深入讲解PHP的对象注入(Object Injection)
Mar 01 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
Oct 15 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来写记数器(详细介绍)
2006/10/09 PHP
一个ubbcode的函数,速度很快.
2006/10/09 PHP
php查看session内容的函数
2008/08/27 PHP
php 修改zen-cart下单和付款流程以防止漏单
2010/03/08 PHP
php 防止表单重复提交两种实现方法
2016/11/03 PHP
PHP中的异常处理机制深入讲解
2020/11/10 PHP
jQuery 幻灯片插件(带缩略图功能)
2011/01/24 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
javascript打印输出json实例
2013/11/11 Javascript
javascript验证身份证号
2015/03/03 Javascript
jQuery实现可以控制图片旋转角度效果(附demo源码下载)
2016/01/27 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
JS Attribute属性操作详解
2016/05/19 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
vue 添加vux的代码讲解
2017/11/30 Javascript
webpack+react+antd脚手架优化的方法
2018/04/02 Javascript
更强大的vue ssr实现预取数据的方式
2019/07/19 Javascript
js实现图片粘贴到网页
2019/12/06 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
2020/06/05 Javascript
NodeJS开发人员常见五个错误理解
2020/10/14 NodeJs
python中文编码问题小结
2014/09/28 Python
深入理解Python3 内置函数大全
2017/11/23 Python
Python实现的根据IP地址计算子网掩码位数功能示例
2018/05/23 Python
python使用magic模块进行文件类型识别方法
2018/12/08 Python
基于Python模拟浏览器发送http请求
2020/11/06 Python
Python应用自动化部署工具Fabric原理及使用解析
2020/11/30 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
css3发光搜索表单分享
2014/04/11 HTML / CSS
使用HTML5在网页中嵌入音频和视频播放的基本方法
2016/02/22 HTML / CSS
英国最大的百货公司:Harrods
2016/08/18 全球购物
NBA欧洲商店(法国):NBA Europe Store FR
2016/10/19 全球购物
纽约复古灵感的现代珠宝品牌:Lulu Frost
2018/03/03 全球购物
Kate Spade澳大利亚官方网站:美国设计师手袋品牌
2019/09/10 全球购物
Linux如何压缩可执行文件
2014/03/27 面试题
计算机专业个人简短的自我评价
2013/10/23 职场文书
导游词欢迎词
2015/02/02 职场文书