今天一位朋友问我php的最大递归次数可否设置的更大一些,我想了想,就在我的博客的回复中给他回复了,但是不知道为什么csdn提示我说连接过多,无法显示,我也就很头疼的另开一贴,来解答这个问题。
当然了,咱们不能凭经验和猜测,我就去这个php的配置文件找了找,找到了下面这些设置项,看下面代码:
;PCRE library recursion limit.
;Please note that if you set this value to a high number you may consume all
;the available process stack and eventually crash PHP (due to reaching the
;stack size limit imposed by the Operating System).
; http://php.net/pcre.recursion-limit
;pcre.recursion_limit=100000
我们发现最大递归次数是可以自由设置的,当然它这里并没有设置,但是我个人不建议设置的太大,因为大家试想一下,MATLAB这种专业处理数据的,才支持递归大约五百次左右,处理数据并不是php的强项,如果我们递归次数过深,那也会严重的拖累系统性能,这也就是理论上我们的楼层可以建筑N层,但是真的不要这么做,成本太高,不划算也没必要。
当然了,它也受操作系统和运行时分配的堆栈段的大小,不过这里我没有给出严格的数据测试,只是从php.ini中搜了搜,得到的信息也不是很全面,不过有一点是可以确认的:那就是这个数据是可以自由设置的。