自从 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 个人笔记的更多相关文章

  1. Scala学习教程笔记二之函数式编程、Object对象、伴生对象、继承、Trait、

    1:Scala之函数式编程学习笔记: :Scala函数式编程学习: 1.1:Scala定义一个简单的类,包含field以及方法,创建类的对象,并且调用其方法: class User { private ...

  2. scala 学习笔记(05) OOP(中)灵活的trait

    trait -- 不仅仅只是接口! 接上回继续,scala是一个非常有想法的语言,从接口的设计上就可以发现它的与众不同.scala中与java的接口最接近的概念是trait,见下面的代码: packa ...

  3. T4:T4 笔记 + Trait 示例

    背景 官方教程:http://msdn.microsoft.com/en-us/library/vstudio/bb126445.aspx. 如果开发环境或编译器内置了对模板的支持而没有善加利用,就算 ...

  4. 读书笔记_Effective_C++_条款四十七:请使用trait classes来表示类型信息

    这一条款主要来讨论模板中迭代器的属性iterator_category,它可以通过类似于vector<int>::iterator::iterator_category的方式来取得. 到这 ...

  5. Scala学习笔记--特质trait

    http://outofmemory.cn/scala/scala-trait-introduce-and-example 与Java相似之处 Scala类型系统的基础部分是与Java非常相像的.Sc ...

  6. scala学习笔记3(trait)

    // trait 类似于 Java8 中可以带 default method 的接口. // trait 中可以带有实现的方法,也可以带有抽象的方法,使用 trait 的方式是 with 而混入类中 ...

  7. scala学习笔记-面向对象编程之Trait

    将trait作为接口使用 1 // Scala中的Triat是一种特殊的概念 2 // 首先我们可以将Trait作为接口来使用,此时的Triat就与Java中的接口非常类似 3 // 在triat中可 ...

  8. AKKA 笔记 - 有限状态机 -2

    AKKA 笔记 - 有限状态机 -2 原文地址: http://rerun.me/2016/05/22/akka-notes-finite-state-machines-2/ 在上一节的Akka FS ...

  9. 《PHP Manual》阅读笔记1

    1.phpinfo() 从 PHP 获取系统信息. 2.$_SERVER 只是 PHP 自动全局化的变量之一.它包含了 web 服务器提供的所有信息,被称为超全局变量. 3.htmlspecialch ...

随机推荐

  1. node 应用集合

    node+react上传 淘宝的formidable express部署

  2. ZetCode PyQt4 tutorial work with menus, toolbars, a statusbar, and a main application window

    !/usr/bin/python -*- coding: utf-8 -*- """ ZetCode PyQt4 tutorial This program create ...

  3. 《DSP using MATLAB》Problem 2.2

    1.代码: %% ------------------------------------------------------------------------ %% Output Info abo ...

  4. laravel 创建自定义全局函数

    全局函数的实现是依靠在初始化的时候,将helps.php或者functions.php直接进行了加载.而Laravel中bootstrap/autoload.php(laravel 5.5 貌似没有这 ...

  5. DCI改进,发布后作业乱码不能打开

    1.发布后作业不能打开问题,找到com.comsys.net.cn.dci.ui.dialog.PublishesDialog 的960行,改为这样: //以前没有指定文件编码前,采用系统默认编码 / ...

  6. NLTK在自然语言处理

    nltk-data.zip 本文主要是总结最近学习的论文.书籍相关知识,主要是Natural Language Pracessing(自然语言处理,简称NLP)和Python挖掘维基百科Infobox ...

  7. httpd编译安装

    Apache安装问题:configure: error: APR not found . Please read the documentation: Linux上安装Apache时,编译出现错误: ...

  8. laravel Hash密码 校对

    laravel加密 是使用hash不可逆的,但是可以对加密后的密码进行校对 $data = $r->all();$id = $data['id'];$user_password = bcrypt ...

  9. vim自定义配置之autoComplPop设置

    BundlenInstall安装autoComplPop vimConfig/plugin/autoComplPop-setting.vim "autocomplpop 设置 let g:A ...

  10. 流行的FPGA的上电复位

    在实际设计中,由于外部阻容复位时间短,可能无法使FPGA内部复位到理想的状态,所以今天介绍一下网上流行的复位逻辑. 在基于verilog的FPGA设计中,我们常常可以看到以下形式的进程: 信号rst_ ...