国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP Laravel中的Trait是什么

2020-03-22 18:17:06
字體:
來源:轉載
供稿:網友
PHP作為編程語言的一個問題是,您只能有單一繼承。這意味著一個類只能從另一個類繼承。例如,為了防止代碼重復,最好從兩個不同的類繼承方法。在PHP 5.4中,添加了一種稱為Traits的語言新特性,并在Laravel框架中廣泛使用。

Trait是一種在單繼承語言(如PHP)中重用代碼的機制。Trait旨在通過使開發人員能夠在生活在不同類層次結構中的多個獨立類中自由地重用方法集來減少單繼承的某些限制。Traits和類組合的語義以降低復雜性的方式定義,并避免了與多重繼承和Mixins相關的典型問題。

Trait類似于類,但僅用于以細粒度和一致的方式對功能進行分組。無法自行實例化Trait。它是對傳統繼承的補充,可以實現行為的橫向組合; 也就是說,類成員的html' target='_blank'>應用程序不需要繼承。

什么是PHP Trait?

Trait僅僅是您希望包含在另一個類中的一組方法。與抽象類一樣,Trait不能自己實例化。

Trait的一個例子可以是:

trait SharePost { public function share($item) return share this post }

然后你可以把這個trait 包含在其他類中,就像這樣:

class Post { use SharePost;class Comment { use SharePost;}

現在,如果要從這些類中創建新對象,您會發現它們都有share()方法可用:

$post = new Post;echo $post- share( $comment = new Comment;echo $comment- share( 

trait 如何運作?

從上面的示例中可以看出,盡管沒有定義該方法,但是對象Post和Comment對象都具有share()可用的方法。

Trait基本上只是一種在運行時“復制和粘貼”代碼的方法。

這意味著Trait被復制到Post和Comment類中,因此當您實例化一個新實例時,share()方法代碼將可用。

我經常檢查我的代碼以及如何構建我的代碼,以便可以快速完成未來的功能添加,并且新項目可以輕松擴展以前的想法。

如何在laravel中使用trait ?

我在我的Http目錄中創建了一個Trait目錄,其中有一個名為的TraitBrandsTrait.php

use App/Http/Traits/BrandsTrait;class YourController extends Controller { use BrandsTrait; public function addProduct() { $brands = $this- brandsAll();}

這是我的BrandsTrait.php

 ?phpnamespace App/Http/Traits;use App/Brand;trait BrandsTrait { public function brandsAll() { // 從品牌表中獲取所有品牌 $brands = Brand::all(); return $brands;}

以上就是PHP Laravel中的Trait是什么的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 焦作市| 康乐县| 黄冈市| 和硕县| 东海县| 社会| 霍山县| 九龙坡区| 班戈县| 贡山| 盐津县| 灵石县| 南陵县| 聂拉木县| 麻阳| 屏边| 阿坝| 从江县| 枝江市| 新竹市| 桐乡市| 张家界市| 司法| 大悟县| 团风县| 平南县| 中宁县| 和静县| 宜川县| 芷江| 高碑店市| 宣城市| 法库县| 二手房| 澄城县| 海阳市| 壤塘县| 石河子市| 安国市| 卓尼县| 美姑县|