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数组传递是值传递而非引用传递概念纠正
Jan 31 PHP
360通用php防护代码(使用操作详解)
Jun 18 PHP
PHP如何利用P3P实现跨域
Aug 24 PHP
php session劫持和防范的方法
Nov 12 PHP
destoon实现公司新闻详细页添加评论功能的方法
Jul 15 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
Nov 04 PHP
php函数serialize()与unserialize()用法实例
Nov 06 PHP
Yii框架登录流程分析
Dec 03 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
Dec 06 PHP
Laravel中validation验证 返回中文提示 全局设置的方法
Sep 29 PHP
php TP5框架生成二维码链接
Apr 01 PHP
tp5使用layui实现多个图片上传(带附件选择)的方法实例
Nov 17 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
第七节 类的静态成员 [7]
2006/10/09 PHP
PHP注释实例技巧
2008/10/03 PHP
php 禁止页面缓存输出
2009/01/07 PHP
PHP取进制余数函数代码
2012/01/19 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
2014/06/09 PHP
Laravel 5框架学习之子视图和表单复用
2015/04/09 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
2015/07/29 PHP
smarty模板数学运算示例
2016/12/11 PHP
laravel框架分组控制器和分组路由实现方法示例
2020/01/25 PHP
ExtJS4 组件化编程,动态加载,面向对象,Direct
2011/05/12 Javascript
JavaScript的模块化:封装(闭包),继承(原型) 介绍
2013/07/22 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
教你使用javascript简单写一个页面模板引擎
2015/05/05 Javascript
简单谈谈Javascript中类型的判断
2015/10/19 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
nodejs 的 session 简单使用
2016/06/06 NodeJs
JS实现保留n位小数的四舍五入问题示例
2016/08/03 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
jquery 遍历hash操作示例【基于ajax交互】
2019/10/12 jQuery
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
JavaScript实现打字游戏
2021/02/19 Javascript
[00:31]DOTA2上海特级锦标赛 Fnatic战队宣传片
2016/03/04 DOTA
Python正则表达式匹配ip地址实例
2014/10/09 Python
Python实现提取XML内容并保存到Excel中的方法
2018/09/01 Python
python: 自动安装缺失库文件的方法
2018/10/22 Python
解决Mac下使用python的坑
2019/08/13 Python
python 实现视频 图像帧提取
2019/12/10 Python
keras的siamese(孪生网络)实现案例
2020/06/12 Python
HTML5实现的图片无限加载的瀑布流效果另带边框圆角阴影
2014/03/07 HTML / CSS
MATCHESFASHION澳大利亚/亚太地区:英国时尚奢侈品电商
2020/01/14 全球购物
捷克购买家具网站:JENA nábytek
2020/03/19 全球购物
《桂花雨》教学反思
2014/04/12 职场文书
职业生涯规划书前言
2014/04/15 职场文书
财务总监岗位职责
2015/02/03 职场文书
老干部局2015年度工作总结
2015/10/22 职场文书
Pandas 数据编码的十种方法
2022/04/20 Python