自php5.4 traits 新特性

ixibei 发表于 分类:Php 阅读(2112) 评论(0)

简介:

  今天在一个php类中突然看到了use namespace 之前没有看过这个东西,特地搜了一下,写下这篇文章以防忘记。“自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits。Traits 是一种为类似…

  今天在一个php类中突然看到了use namespace 之前没有看过这个东西,特地搜了一下,写下这篇文章以防忘记。“自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits。


Traits 是一种为类似 PHP 的单继承语言而准备的代码复用机制。Trait 为了减少单继承语言的限制,使开发人员能够自由地在不同层次结构内独立的类中复用方法集。Traits 和类组合的语义是定义了一种方式来减少复杂性,避免传统多继承和混入类(Mixin)相关的典型问题。


Trait 和一个类相似,但仅仅旨在用细粒度和一致的方式来组合功能。Trait 不能通过它自身来实例化。它为传统继承增加了水平特性的组合;也就是说,应用类的成员不需要继承。”


通常官方的说法总是让人不知所云,还好提供了几个例子,相当的简单命了。

<?php

class Base {

    public function sayHello() {

        echo 'Hello ';

    }

}


trait SayWorld {

    public function sayHello() {

        parent::sayHello();

        echo 'World!';

    }

}


class MyHelloWorld extends Base {

    use SayWorld;

}


$o = new MyHelloWorld();

$o->sayHello();

?>

以上的例子输出 ‘hello world’,你看懂了吗?

参考链接 http://php.net/manual/zh/language.oop5.traits.php


结束语

本文有任何错误,或有任何疑问,欢迎留言说明。

下一篇:  >>

本站文章除注明转载外,均为原创文章,会经常更新知识点以及修正一些错误,因此转载请保留原出处,方便溯源,避免陈旧错误知识的误导,同时有更好的阅读体验。

http://www.onephper.com/archive/8.html

相关推荐

评论

回复给XXX取消回复

说点什么吧...

网友最新评论

输入关键字