《PHP學習:php基于閉包實現(xiàn)函數(shù)的自調用(遞歸)實例分析》要點:
本文介紹了PHP學習:php基于閉包實現(xiàn)函數(shù)的自調用(遞歸)實例分析,希望對您有用。如果有疑問,可以聯(lián)系我們。
本文實例講述了php基于閉包實現(xiàn)函數(shù)的自調用(遞歸)的方法.分享給大家供大家參考,具體如下:PHP實例
php的閉包可能不常用,但是在某些場合之下還是可以考慮用php的閉包來實現(xiàn)某些功能的,比如遞歸,這里講一下用php的閉包實現(xiàn)遞歸PHP實例
//php閉包實現(xiàn)函數(shù)的自調用,也就是實現(xiàn)遞歸 function closure($n,$counter,$max){ //匿名函數(shù),這里函數(shù)的參數(shù)加&符號是,引址調用參數(shù)自己 $fn = function (&$n,&$counter,&$max=1) use(&$fn){//use參數(shù)傳遞的是函數(shù)閉包函數(shù)自身 $n++; if($n < $max){//遞歸點,也就是遞歸的條件 $counter .=$n.'<br />'; //遞歸調用自己 $fn($n,$counter,$max); } return $counter; };//記得這里必須加``;``分號,不加分號php會報錯,閉包函數(shù) /* *這里函數(shù)closure的返回值就是調用閉包的匿名函數(shù) *而閉包函數(shù),引用closure函數(shù)傳進來的參數(shù) */ return $fn($n,$counter,$max); } echo (closure(0,'',10));
這是一個簡單的使用php閉包實現(xiàn)遞歸的函數(shù),其實,假如我們對這個函數(shù)稍微修改一下,是可以實現(xiàn)很多功能的,比如說,無限極分類.PHP實例
關于里面的閉包函數(shù),其實,我們也可以不用引用外面的closure參數(shù),里面的閉包函數(shù)的參數(shù),我們可以在closure的內部設置.PHP實例
我們也可以不用返回閉包函數(shù)的值,因為閉包函數(shù)是在closure函數(shù)里面,我們可以在closure里面設置一下變量傳遞給閉包函數(shù),然后,用閉包遞歸獲取我們想要的東西存儲在數(shù)組中,再利用closure函數(shù)返回閉包函數(shù)獲取的東西,所以,閉包函數(shù)也可以沒有返回值的,關鍵是你要獲取什么東西.PHP實例
總之,你只要利用這個閉包函數(shù)實現(xiàn)你要的東西,然后返回你需要的東西即可,不一定非要從閉包函數(shù)的返回值中獲取.PHP實例
更多關于PHP相關內容感興趣的讀者可查看本站專題:《php查找技巧與方法總結》、《PHP數(shù)據結構與算法教程》、《php程序設計算法總結》、《php加密方法總結》、《PHP編碼與轉碼操作技巧匯總》、《php面向對象程序設計入門教程》、《PHP數(shù)學運算技巧總結》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結》、《php正則表達式用法總結》、及《php常見數(shù)據庫操作技巧匯總》PHP實例
希望本文所述對大家PHP程序設計有所幫助.PHP實例
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/2821.html