PHP的最大遞迴層數

2021-08-07 16:20:31 字數 827 閱讀 8855

php的最大遞迴層數跟程式記憶體限額有關。php

5預設允許乙個程式使用

128m的記憶體,因此當你的遞迴層數過大導致128m記憶體耗盡時,程式會產生乙個致命錯誤並退出。

編輯

php.ini

檔案可以更改

php的最大記憶體使用限制:

; maximumamount of memory a script may consume (128mb)

;

memory_limit= 128m

下邊的小實驗可以驗證php在

128m記憶體配額下執行乙個簡單遞迴程式時,遞迴層級最高可達到

38萬層:

<?php

function re($level)

re(1);

執行後輸出:

now is level380118

now is level380119

now is level380120

php fatalerror:  allowed memory size of 134217728bytes exhausted (tried to allocate 130968 bytes) in /root/envir/recusion.php online 8

未知迴圈層數的遞迴處理

最近遇到乙個問題,當你不知道你需要進行幾層迴圈來處理你的資料時,該怎麼辦。例如,你要構建乙個 但是你只得到乙個已經填充好資料的list,卻並不知道需要構建的 是幾行幾列。處理的主要邏輯就是,採用遞迴的方法,遍歷list的下標。閒話不多說,附上 public class testmultiround ...

使用遞迴實現可變迴圈層數

不確定多層迴圈巢狀的簡潔寫法 原創 瀏覽 2451 更新 2014 06 04 11 43 相信我們都寫過2層for迴圈。一旦超過3層迴圈,就會很難看,並且增加很多變數和 for int i 0 i 10 i for int j 0 j 10 j for int k 0 j 10 k 而有時候我們也...

PHP中的函式巢狀層數限制分析

函式巢狀,這個名字有點糾結,也許不太好理解。乙個比較常見的函式巢狀特例 遞迴函式,即函式自己巢狀自己。一直以為在php中不能有太多的函式巢狀,這是因為在以前某些時候不小心用到了遞迴,在遞迴的深度達到100時,即函式巢狀的層數達到100時,程式會報乙個 fatal error。如下示例 複製 如下 f...