码迷,mamicode.com
首页 > Web开发 > 详细

PHP多继承实现--Traits

时间:2017-07-18 17:51:11      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:实例   水平   内容   net   种类   echo   man   log   需要   

---恢复内容开始---

PHP 5.4.0 开始,PHP 实现了代码复用的一个方法,称为 traits。

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

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

我理解的是 Trait 就是一个不需要继承,可以复用的类。

Trait 的两个简单用例

Trait 的使用

<?php
class Base {
    public function Hello() {
        echo ‘Hello ‘;
    }
}

trait Word{
    public function hello() {
        parent::Hello();
        echo ‘World!‘;
    }
}

class HelloWord extends Base {
    use World;
}

$o = new HelloWord ();
$o->Hello();
?>

在Traits里面调用Traits

trait Hello {
    public function Hello() {
        echo ‘Hello ‘;
    }
}

trait World {
    public function World() {
        echo ‘World!‘;
    }
}

trait HelloWorld {
    use Hello, World;
}

class base {
    use HelloWorld;
}

$o = new base();
$o->Hello();
$o->World();

 

参考地址:

http://www.php.net/manual/zh/language.oop5.traits.php

---恢复内容结束---

PHP多继承实现--Traits

标签:实例   水平   内容   net   种类   echo   man   log   需要   

原文地址:http://www.cnblogs.com/fishs/p/7201762.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!