php之trait 个人笔记
自从 php 5.4 起 实现了一种代码复用的方式(tarit)
类似 class 但是用tarit 写的类 不能被实例化 和继承。现在来看看他的用法
<?php
trait A{
public function Atest()
{
echo "this is trait A";
}
} class Tese{
use A;
}
$testObj = new Tese(); echo $testObj->Atest();
//this is trait A
这里直接用use 就可以 相当于 require()
接下来看看 trait 中方法 的优先级 根据官网手册提供是 :
从基类继承的会被 tarit 的方法覆盖 tarit的方法会被 本类(Test)中的 方法覆盖
同时也支持 多个 tarit 用逗号隔开,eg: use A,B,C;
还是直接上代码 耐心看完。。。
<?php
trait A{
public function Atest(){
echo "this is trait A".'<br>';
}
}
class Base{
public function Atest(){
echo "this is baseA".'<br>';
}
}
class Tese extends Base{ public function Atest(){
echo "this is class Atest".'<br>';
}
use A;
}
$testObj = new Tese();
echo $testObj->Atest(); //this is class Atest
php之trait 个人笔记的更多相关文章
- Scala学习教程笔记二之函数式编程、Object对象、伴生对象、继承、Trait、
1:Scala之函数式编程学习笔记: :Scala函数式编程学习: 1.1:Scala定义一个简单的类,包含field以及方法,创建类的对象,并且调用其方法: class User { private ...
- scala 学习笔记(05) OOP(中)灵活的trait
trait -- 不仅仅只是接口! 接上回继续,scala是一个非常有想法的语言,从接口的设计上就可以发现它的与众不同.scala中与java的接口最接近的概念是trait,见下面的代码: packa ...
- T4:T4 笔记 + Trait 示例
背景 官方教程:http://msdn.microsoft.com/en-us/library/vstudio/bb126445.aspx. 如果开发环境或编译器内置了对模板的支持而没有善加利用,就算 ...
- 读书笔记_Effective_C++_条款四十七:请使用trait classes来表示类型信息
这一条款主要来讨论模板中迭代器的属性iterator_category,它可以通过类似于vector<int>::iterator::iterator_category的方式来取得. 到这 ...
- Scala学习笔记--特质trait
http://outofmemory.cn/scala/scala-trait-introduce-and-example 与Java相似之处 Scala类型系统的基础部分是与Java非常相像的.Sc ...
- scala学习笔记3(trait)
// trait 类似于 Java8 中可以带 default method 的接口. // trait 中可以带有实现的方法,也可以带有抽象的方法,使用 trait 的方式是 with 而混入类中 ...
- scala学习笔记-面向对象编程之Trait
将trait作为接口使用 1 // Scala中的Triat是一种特殊的概念 2 // 首先我们可以将Trait作为接口来使用,此时的Triat就与Java中的接口非常类似 3 // 在triat中可 ...
- AKKA 笔记 - 有限状态机 -2
AKKA 笔记 - 有限状态机 -2 原文地址: http://rerun.me/2016/05/22/akka-notes-finite-state-machines-2/ 在上一节的Akka FS ...
- 《PHP Manual》阅读笔记1
1.phpinfo() 从 PHP 获取系统信息. 2.$_SERVER 只是 PHP 自动全局化的变量之一.它包含了 web 服务器提供的所有信息,被称为超全局变量. 3.htmlspecialch ...
随机推荐
- 【python】利用scipy进行层次聚类
参考博客: https://joernhees.de/blog/2015/08/26/scipy-hierarchical-clustering-and-dendrogram-tutorial/ 层次 ...
- cetos7 systemd 详解
CentOS7/RHEL7 systemd详解 目录1. 为什么是systemd(1) 关于Linux服务管理(2) SysV init的优缺点(3) UpStart的改进(4) systemd的 ...
- secureCRT不能输入
用secureCRT建了一个串口COM1后,连接上开发板后,可以正确接受和显示串口的输出,但是按键输入无效. 解决: Session Options -> Connection -> Se ...
- HDU 2175
http://acm.hdu.edu.cn/showproblem.php?pid=2175 做得好辛苦的一道规律题,至于为什么辛苦..dont ask me why... n号盘子出现的位置是(1, ...
- Oozie_04总结一下workflowf的运行流程【20161116】
4.1 bin/oozie ..... 提交任务 [hadoop@hadoop01 oozie-4.0.0-cdh5.3.6]$ bin/oozie job -oozie http://hadoop0 ...
- OrmLite动态创建表,一个实体类创建多张表的的偏招
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/LonelyRoamer/article/details/26299355 在做一个Android的项 ...
- 安装 nodejs,npm,pm2
一:需要安装组件: nodejs,npm,pm2 安装epel 源: rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel ...
- memcached内存管理机制分析
memached是高性能分布式内存对象系统,通过在内存中存储数据对象来减少对磁盘的数据读取次数,提高服务速度. 从业务需求出发.我们通过一条命令(如set)将一条键值对(key,value)插入mem ...
- 关于Fragment框架,说的够清晰了。。。
Android4.0-Fragment框架实现方式剖析(一) 分类: Android UI 2012-09-19 18:59 14880人阅读 评论(8) 收藏 举报 android 目录(?)[ ...
- Java 运用流传输文件
实例1 package IO; import java.io.FileReader; import java.io.FileWriter; import java.io.Reader; import ...