PHPの最大再帰層数
1315 ワード
PHPの最大再帰層数はプログラムメモリ限度額と関係があります.php 5デフォルトでは、プログラムは128 Mのメモリを使用することができます.したがって、再帰層数が大きすぎて128 Mのメモリがなくなった場合、プログラムは致命的なエラーを発生して終了します.
下の小さい実験はphpが128 Mのメモリ割り当ての下で簡単な再帰手続きを実行する時、再帰レベルは最高38万層に達することができます.
実行後出力:
php.ini PHP :
; Maximumamount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit= 128M
下の小さい実験はphpが128 Mのメモリ割り当ての下で簡単な再帰手続きを実行する時、再帰レベルは最高38万層に達することができます.
function re($level)
{
printf("now is level%d
",$level);
$level++;
re($level);
printf("level %d isout
",$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