亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 145
粉絲 7
評論 7
訪問量 198454
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
PHP基礎(chǔ)知識:trait的應(yīng)用和案例
李東亞1??3????12?
原創(chuàng)
1073人瀏覽過

代碼練習(xí)

1、代碼

  1. <?php
  2. trait A
  3. {
  4. function put(){
  5. return 'A當(dāng)前類名'.__CLASS__;
  6. }
  7. }
  8. trait B
  9. {
  10. function put(){
  11. return 'B當(dāng)前類名'.__CLASS__;
  12. }
  13. }
  14. trait AB
  15. {
  16. use A,B{
  17. B::put insteadOf A;//使用B中的同名方法代替A中的同名方法insteadOf;
  18. A::put as aput;//給A中的同名方法取個別名as;
  19. }
  20. public function getf(){
  21. return 'AB中調(diào)用的方法:'.__METHOD__;
  22. }
  23. }
  24. class Work
  25. {
  26. use AB{
  27. //修改trait中的方法訪問控制
  28. getf as protected gf;
  29. }
  30. }
  31. echo (new Work())->put(),'<br>';
  32. echo (new Work())->aput(),'<br>';
  33. echo (new Work())->getf(),'<br>';
  34. echo (new Work())->gf(),'<br>';

2、運行結(jié)果

trait優(yōu)缺點:

優(yōu)點:trait類似于函數(shù)庫,任何class都可以調(diào)用,可以節(jié)省代碼重寫率;
不適合放在父類(含接口類)或者子類中的方法可以通過trait來實現(xiàn);
缺點:trait無法實列化(不像函數(shù)可以隨時調(diào)用執(zhí)行),只能通過實列類來執(zhí)行;

案例

1、案例代碼

  1. <?php
  2. // 接口
  3. interface iP
  4. {
  5. public static function getn(int $a,int $b);
  6. }
  7. // trait
  8. trait tC
  9. {
  10. public static function computer(int $a,int $b)
  11. {
  12. return "{$a}×{$b}=".($a*$b).'<br>';
  13. }
  14. }
  15. // 工作類
  16. class P implements iP
  17. {
  18. use tC;
  19. public static function getn (int $a, int $b)
  20. {
  21. $arr=range($a,$b);
  22. for($i=0;$i<count($arr);$i++){
  23. if(($i+1)<count($arr)){
  24. // 靜態(tài)函數(shù)無法使用$this;但可以使用new self();
  25. echo (new self)->computer($arr[$i],$arr[$i+1]);
  26. // echo static::computer($arr[$i],$arr[$i+1]);
  27. // echo tC::computer($arr[$i],$arr[$i+1]);
  28. }
  29. }
  30. }
  31. }
  32. // 客戶端
  33. echo "<style>
  34. input{
  35. height:30px;
  36. width:30px;
  37. vertical-align: middle;
  38. font-size:18px;
  39. }
  40. button{
  41. background-color:lightblue;
  42. height:30px;
  43. width:80px;
  44. }
  45. </style>";
  46. echo"<h1>自動生成<input/>-<input/>的乘法公式:</h1>";
  47. print_r(P::getn(0,5));
  48. echo "<button>生成</button>";

1、案例運行結(jié)果

總結(jié)

1、trait方法集:可以組合使用; 引用多個trait, 中間用逗號分開;
2、trait解決方法命名沖突的方法:

  1. 替代:關(guān)鍵字`insteadOf`
  2. 別名:關(guān)鍵字`as`
  3. 別名可以改變成員訪問控制:遵循public>protected>private

3、使用trait時,用關(guān)鍵字use

批改老師:天蓬老師天蓬老師

批改狀態(tài):合格

老師批語:trait, 就像是你們單位招的臨時工, 活都是他們干的, 但并得不到類中原生成員的身份, 出事了, trait還能頂包: 這是第三方類庫有Bug...
本博文版權(quán)歸博主所有,轉(zhuǎn)載請注明地址!如有侵權(quán)、違法,請聯(lián)系admin@php.cn舉報處理!
全部評論 文明上網(wǎng)理性發(fā)言,請遵守新聞評論服務(wù)協(xié)議
1條評論
李**1??3????12? 2020-05-06 18:21:15
通過別名的方法(use name{ func as public F;})改變trait 中的訪問限制,可以在public、protected、private三者之間隨意切換;
1樓
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費學(xué)