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

搜索
博主信息
博文 145
粉絲 7
評論 7
訪問量 198790
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
02月14日作業(yè):閉包和異常
李東亞1??3????12?
原創(chuàng)
1149人瀏覽過

作業(yè)一

知識點:
一、閉包:
1、在php中閉包即匿名函數(shù),閉包是一個對象,一個clousre類實例;
2、閉包最常用的環(huán)境:函數(shù)或者方法的回調參數(shù)
3、閉包可以將一個執(zhí)行環(huán)境(父級中的變量/狀態(tài))封裝到匿名函數(shù)中
二:閉包中的類方法
1、bindTo():復制當前閉包對象,綁定指定$this和類作用域(實列方法)
2、bind():復制一個閉包對象,綁定指定$this和類作用域(靜態(tài)方法)
3、__invoke():將閉包對象當成函數(shù)用時觸發(fā);(魔術方法)
4、__construct(void):構造方法,禁止外部實列化clousre類
5、__toString():將對象當成字符串輸出時自動觸發(fā);
三:異常類:

  1. Exception {
  2. /* 屬性 */
  3. protected string $message ;
  4. protected int $code ;
  5. protected string $file ;
  6. protected int $line ;
  7. /* 方法 */
  8. public __construct ([ string $message = "" [, int $code = 0 [, Throwable $previous = NULL ]]] )
  9. final public getMessage ( void ) : string
  10. final public getPrevious ( void ) : Throwable
  11. final public getCode ( void ) : int
  12. final public getFile ( void ) : string
  13. final public getLine ( void ) : int
  14. final public getTrace ( void ) : array
  15. final public getTraceAsString ( void ) : string
  16. public __toString ( void ) : string
  17. final private __clone ( void ) : void
  18. }

四、其他
1、array_filter():數(shù)組過濾函數(shù),對傳入數(shù)組中的每一個元素進行處理,返回結果為true元素的組成的新數(shù)組;
2、in_array($value,$array);判斷$value是否在$array數(shù)組中,返回的bool值
3、AEEAY_FILTER_USE_KEY:是數(shù)組過濾函數(shù)的參數(shù),返回數(shù)組中的鍵值;
4、__callStatic();當訪問一個類中不存在靜態(tài)方法時,會自動觸發(fā)這個魔術方法

作業(yè)二:閉包案例

代碼:

  1. <?php
  2. namespace part0;
  3. use Closure;
  4. $closure=function (string $name) :Closure {
  5. return function(string $var) use($name){
  6. return sprintf('%s,%s',$name,$var);
  7. };
  8. };
  9. $c=$closure('種業(yè)圈');
  10. $str=$c('歡迎你');
  11. echo $str.'<br>';
  12. echo '<hr>';
  13. class User
  14. {
  15. public $name='張無忌';
  16. public static $school='明教';
  17. private $age=30;
  18. public function __toString()
  19. {
  20. return $this->name.'入'.static::$school.$this->age.'年';
  21. }
  22. public function set($n)
  23. {
  24. $this->age=$n;
  25. }
  26. }
  27. $user=new User;
  28. echo $user;
  29. echo '<br>';
  30. $set=function(string $name, string $school, int $age): void {
  31. $this->name=$name;
  32. static::$school=$school;
  33. $this->set($age);
  34. };
  35. $cl=$set->bindTo($user,User::class);
  36. $cl('朱老師','php中文網(wǎng)',15);
  37. echo $user;

實現(xiàn)效果:

作業(yè)三:異常

  1. <?php
  2. namespace one;
  3. use Exception;
  4. class MyException extends Exception
  5. {
  6. public function __toString()
  7. {
  8. return <<< DOC
  9. <table border="1" cellspacing="0" cellpadding="5">
  10. <tr bgcolor="wheat">
  11. <th>錯誤信息</th>
  12. <th>代碼</th>
  13. <th>文件</th>
  14. <th>行號</th>
  15. </tr>
  16. <tr>
  17. <td>$this->message</td>
  18. <td>$this->code </td>
  19. <td>$this->file </td>
  20. <td>$this->line</td>
  21. </tr>
  22. </table>
  23. DOC;
  24. }
  25. }
  26. try{
  27. if(true) throw new MyException('密碼不一致',400);
  28. }catch(MyException $a){
  29. echo $a;
  30. };

效果圖:

作業(yè)四:

閉包類中:
bind($clousre,$class,Class::class)和$clousre->bindTo($class,Class::class)中的參數(shù),沒有類對象(類實列時)直接綁定類時,類實例應為null;

1、bindTo()的使用:

  1. $bind=$colusre->bindTo($class);//閉包綁定類返回新的閉包
  2. $bind(...$var);//運行閉包到類,執(zhí)行綁定到類

2、bind()的使用:

  1. $bind=Clousre::bind($clouser,$class);$bind(...$var);
批改老師:天蓬老師天蓬老師

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

老師批語:不必與老師的代碼相同, 可以有自己的想法
本博文版權歸博主所有,轉載請注明地址!如有侵權、違法,請聯(lián)系admin@php.cn舉報處理!
全部評論 文明上網(wǎng)理性發(fā)言,請遵守新聞評論服務協(xié)議
0條評論
關于我們 免責申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓,幫助PHP學習者快速成長!
關注服務號 技術交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學習
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

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

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