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

首頁 > 網站 > 建站經驗 > 正文

PHP中的traits、實現代碼復用使用實例

2019-11-02 15:15:14
字體:
來源:轉載
供稿:網友

   這篇文章主要介紹了PHP中的traits實現代碼復用使用實例,本文講解了Trait簡單使用、優先級問題、多個Trait沖突問題、as可用來修改方法訪問控制、Trait中使用Trait等內容,需要的朋

  (1)Trait簡單使用

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 <?php   trait A { public $var1 = 'test1'; public function test1() { echo 'trait A::test1()'; } }   trait B { public $var2 = 'test2'; public function test2() { echo 'trait B::test2()'; } }   class C { use A,B; }   $c = new C(); echo $c->var1; //test1 $c->test2(); //trait B::test2()

  (2)優先級問題

  Trait會覆蓋繼承的方法,當前類會覆蓋Trait方法。

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 trait A { public $var1 = 'test'; public function test() { echo 'A::test()'; } public function test1() { echo 'A::test1()'; } }   class B { public function test() { echo 'B::test()'; } public function test1() { echo 'B::test1()'; } } class C extends B{ use A; public function test() { echo 'c::test()'; } }   $c = new C(); $c->test(); //c::test() $c->test1(); //A::test1()

  (3)多個Trait沖突問題

  如果沒有解決沖突,會產生致命錯誤;

  可用insteadof來明確使用沖突中哪一個方法;

  可用as操作符將其中一個沖突方法另起名;

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 trait A { public function test() { echo 'A::test()'; } }   trait B { public function test() { echo 'B::test()'; } }   class C { use A,B { B::test insteadof A; B::test as t; } }   $c = new C(); $c->test(); //B::test() $c->t(); //B::test() 可以用as另起名
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌鲁木齐县| 京山县| 错那县| 江陵县| 滦南县| 汕头市| 安多县| 富顺县| 祁东县| 湛江市| 镇平县| 永康市| 墨竹工卡县| 广宗县| 金阳县| 新郑市| 南和县| 南康市| 张掖市| 济阳县| 岳普湖县| 老河口市| 高阳县| 卫辉市| 长顺县| 马公市| 策勒县| 永和县| 砀山县| 德江县| 华坪县| 焦作市| 桐乡市| 阜宁县| 绍兴市| 措美县| 宁武县| 石渠县| 彩票| 南召县| 嘉黎县|