關於PHP的Trait特性

關於做者

程序開發人員,不拘泥於語言與技術,目前主要從事PHP和前端開發,使用Laravel和VueJs,App端使用Apicloud混合式開發。合適和夠用是最完美的追求。php

我的網站:http://www.linganmin.cn前端

最近剛寫了一個手機在線播放的H5電影站:http://www.ifilm.ltdoop

什麼是trait

自 PHP 5.4.0 起,PHP 實現了一種代碼複用的方法,稱爲 trait。網站

Trait 是爲相似 PHP 的單繼承語言而準備的一種代碼複用機制。Trait 爲了減小單繼承語言的限制,使開發人員可以自由地在不一樣層次結構內獨立的類中複用 method。Trait 和 Class 組合的語義定義了一種減小複雜性的方式,避免傳統多繼承和 Mixin 類相關典型問題。spa

Trait 和 Class 類似,但僅僅旨在用細粒度和一致的方式來組合功能。 沒法經過 trait 自身來實例化。它爲傳統繼承增長了水平特性的組合;也就是說,應用的幾個 Class 之間不須要繼承。.net

簡單示例

// 定義一個獲商品信息的trait
trait GetGoodsInfo {
    // 
    public function getPrice() {

    }
}

// 定義一個商品類,類裏面使用定義的trait,就至關於在這個類裏面定義了一個getPrice的方法
class Goods{
    use GetGoodsInfo;
}

PHP官方文檔關於trait的介紹

PHP中文文檔 Trait實現代碼複用方法code

在Laravel中增長Trait的坑

使用PHPStorm新建Trait文件時必定要選新建PHP Class選項,而後會彈出以下對話框
orm

若是在建立Trait文件時,沒有選新建PHP Class選項而是選了新建PHP File選項,就算在新建的文件中加上命名空間在使用的時候仍是會報錯,報錯這個trait沒法找到blog

安小下同窗繼承

相關文章
相關標籤/搜索