1. 程式人生 > >PHP多繼承實現--Traits

PHP多繼承實現--Traits

use echo 實例 ren 代碼復用 manual 方式 兩個 text

---恢復內容開始---

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