php Trait 基础应用讲解
生活随笔
收集整理的這篇文章主要介紹了
php Trait 基础应用讲解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先,上手冊:自 PHP 5.4.0 起,PHP 實現了一種代碼復用的方法,稱為 trait。
隨后。。。來講解trait的用法:
trait first_trait {function first_trait() {//里面寫你想寫的代碼}function second_trait() {//里面寫你想寫的代碼}//http://blog.csdn.net/a757291228 }首先不說怎么用,看了下面就懂怎么用了:
trait first_trait {function first_trait() {//里面寫你想寫的代碼}function second_trait() {//里面寫你想寫的代碼}//http://blog.csdn.net/a757291228 } //新建一個類 class trait_user{// 在這里使用 first_traituse first_trait; } //new一個對象 $obj = new trait_user(); //隨后obj就可以調用first_method了 $obj->first_trait(); $obj->second_trait(); //為何能夠調用呢?那是因為我們在類里面使用了use然后把trait拿過來了,由于first_trait里面有這兩個函數,所以我們新建類的時候就可以調用了=。=。。解釋寫在代碼塊里面了,因為這樣方便一點=。=。。。
以上就是trait的基本使用 ,當然也可以在一個類里面使用多個trait,如下:
trait first_trait {function first_trait() {//里面寫你想寫的代碼echo '使用了f_1';}function second_trait() {//里面寫你想寫的代碼echo '使用了f_2';} }//http://blog.csdn.net/a757291228trait second_trait {function s_first_trait() {//里面寫你想寫的代碼echo '使用了s_1';}function s_second_trait() {//里面寫你想寫的代碼echo '使用了s_2';} }//http://blog.csdn.net/a757291228 //新建一個類 class trait_user{// 在這里使用 first_trait和second_trait use first_trait,second_trait; } $obj = new trait_user();$obj->first_trait(); $obj->second_trait(); //在這里我又多調用了另外的trait $obj->s_first_trait(); $obj->s_second_trait();以上就是使用多個trait…
我們還可以就是說在trait 里面use trait,就是trait里面用trait:
trait first_trait {function first_trait() {//里面寫你想寫的代碼echo '使用了f_1';}function second_trait() {//里面寫你想寫的代碼echo '使用了f_2';} }trait second_trait {//在這里使用了first_trait 。。。唔use first_trait;function s_first_trait() {//里面寫你想寫的代碼echo '使用了s_1';}function s_second_trait() {//里面寫你想寫的代碼echo '使用了s_2';} }//意思說只要類使用了second_trait那么同時可以使用first_trait里面的function解釋在注釋 里面,使用我就不寫咯=。=。。相比應該都懂了。。。
還有 一個就是沖突問題;例如兩個trait里面有同名 的function,那么 該如何解決?手冊中 寫到,php5.4引入了新的關鍵字insteatdof和as,那么instead演示如下:
trait first_trait {function first_trait() {//同名functionecho '使用了f_1';} //http://blog.csdn.net/a757291228 強行安利 }trait second_trait {function first_trait() {//同名functionecho '使用了s_1';}}class trait_class {use first_trait, second_trait {first_trait::first_trait insteadof second_trait;//以上代碼說明:在這里使用first_trait的同名函數替換掉second_trait中的,注意在這里是一對花括號里面寫這個代碼的。。。} }以上代碼就解決沖突咯。。。
接下來是as的用法:
<?php trait first_trait {function first_trait() {//同名functionecho '使用了f_1';}}trait second_trait {function first_trait() {//同名functionecho '使用了s_1';}}class Talker {use first_trait, second_trait {first_trait::first_trait insteadof second_trait;second_trait::first_trait as talk;//以上是as的用法=。=。。開始我一直搞不明白,哪里出問題了,錯誤信息讓我有點懵,最后看了手冊,發現需要insteadof另外一個trait才能使用as=。=。。這就非常 尷尬了,as就是別名的意思,第一個替換掉function后,隨后用as指定之前 被替換掉的換一個名字使用,這樣就可以都使用這兩個function了} }//http://blog.csdn.net/a757291228 強行安利
以上就是5.4中的trait的基本用法了=。=。。
總結
以上是生活随笔為你收集整理的php Trait 基础应用讲解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php Heredoc应用说明
- 下一篇: php 之 Final 关键字