新聞中心

在昌江等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需定制,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,營(yíng)銷(xiāo)型網(wǎng)站,成都外貿(mào)網(wǎng)站建設(shè),昌江網(wǎng)站建設(shè)費(fèi)用合理。
遞歸函數(shù)最大的好處在于可以精簡(jiǎn)程序中繁雜重復(fù)的程序,并且能以這種特性來(lái)執(zhí)行一些較為復(fù)雜的運(yùn)算動(dòng)作。例如列表、動(dòng)態(tài)樹(shù)型菜單以及遍歷目錄等操作。相應(yīng)的非遞歸函數(shù)雖然效率高,但卻比較難編程,而且相對(duì)來(lái)說(shuō)可讀性差。
遞歸思想
遞歸的主要思想就是,把一個(gè)相對(duì)復(fù)雜的問(wèn)題(原始問(wèn)題)轉(zhuǎn)化為一個(gè)個(gè)與原問(wèn)題相似的規(guī)模較小的問(wèn)題(子問(wèn)題)來(lái)解決,等一個(gè)個(gè)小問(wèn)題解決了,最終的大問(wèn)題自然就解決了。
遞歸方法只需少量的程序就可描述出解題過(guò)程所需要的多次重復(fù)計(jì)算,大大減少程序的代碼量。當(dāng)然,遞歸函數(shù)也不是完美的,也有一定的缺點(diǎn),那就是遞歸方法函數(shù)的運(yùn)行效率不高。
在 PHP 中最大遞歸層數(shù)也不是沒(méi)有限制的,這與程序的內(nèi)存限額有關(guān),PHP5 默認(rèn)允許一個(gè)程序使用 128M 的內(nèi)存,因此當(dāng)遞歸層數(shù)過(guò)大導(dǎo)致 128M 內(nèi)存耗盡時(shí),程序就會(huì)產(chǎn)生一個(gè)致命錯(cuò)誤并退出。PHP7 默認(rèn)允許使用 256M 的內(nèi)存。
PHP 允許使用的最大內(nèi)存可以通過(guò)修改 php.ini 文件來(lái)修改,如下所示:
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit=256M
PHP中的遞歸
想要實(shí)現(xiàn)遞歸,需滿(mǎn)足以下兩個(gè)條件:
- 子問(wèn)題需與原始問(wèn)題為同樣的事,且更為簡(jiǎn)單。
- 不能無(wú)限制地調(diào)用本身,必須有一個(gè)出口,化簡(jiǎn)為非遞歸狀況處理。
【示例】使用遞歸函數(shù)實(shí)現(xiàn) n! 的階乘。
運(yùn)行結(jié)果如下:
15 的階乘是:1307674368000
【示例】計(jì)算斐波那契數(shù)列。
斐波那契數(shù)列數(shù)列如下所示:
1、1、2、3、5、8、13、21、34、...
實(shí)現(xiàn)代碼如下所示:
運(yùn)行結(jié)果如下:
數(shù)列第 10 位是:55
分享題目:PHP遞歸函數(shù)
本文路徑:http://m.5511xx.com/article/cosjssj.html


咨詢(xún)
建站咨詢(xún)
