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 ... 
随机推荐
- 回测框架pybacktest简介(二)
			pybacktest 的疑点 第(一)节“教程”原文,是用 ipython notebook 写成,程序代码是一些片段组成. 为了阅读方便,合并在一起. 本文转载于:http://blog.csdn. ... 
- 最新解决  Ubuntu16.04  和  win10 双系统时间同步问题 (设置为 UTC 时间)
			最近在电脑上安装了 Ubuntu16.04 和 Win10 双系统, 开机后发现电脑的开机系统出现了问题,不知道怎么搞的总是会出现8个小时的误差,在网上查了好多文章发现网上的大部分方法都是比较过时的 ... 
- ZetCode PyQt4 tutorial First programs
			#!/usr/bin/python # -*- coding: utf-8 -*- """ ZetCode PyQt4 tutorial In this example, ... 
- inline修饰虚函数的问题
			虚函数是否可以内联? 一般来说,inline是编译时的行为,虚函数是在程序执行时的行为,因此编译器一般会拒绝对虚函数进行内联! 
- char、varchar、varchar2区别
			char varchar varchar2 的区别 区别:1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (20),表示你存储的 ... 
- 常用数据结构的功能及复杂度总结(OI)
			不定长数组 维护一个序列 在末尾插入/删除均摊O(1) 任意位置插入O(n) 指定位置查询/修改O(1) 空间O(n) 链表 维护一个序列 定位到第i个位置O(n) 在任意位置(已定位到该位置)插入/ ... 
- postman 前置 和 后置 处理器 用法
			基本用法 赋予变量 var body="我是变量的值" ; -----给body赋值 postman.setEnvironmentVariable("sign&qu ... 
- HDU 2516 取石子游戏(斐波那契)
			取石子游戏 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ... 
- Bootstrap-CL:面包屑导航
			ylbtech-Bootstrap-CL:面包屑导航 1.返回顶部 1. Bootstrap 面包屑导航(Breadcrumbs) 面包屑导航(Breadcrumbs)是一种基于网站层次信息的显示方式 ... 
- [转]Web前端浏览器兼容
			转自: http://www.admin10000.com/document/1900.html 前言 浏览器兼容是前端开发人员必须掌握的一个技能,但是初入前端的同学或者其他后台web开发同学往往容易 ... 
