递归调用的话,会有最大调用栈的限制,当然……如果业务判断都超出了最大调用栈那确实很可怕了。
还有一个问题,就是递归进去的可能存在内存不释放的问题,可以换个方案,如使用 do...while
。
<?php
$foo = 0;
function foo()
{
global $foo;
if ($foo < 1000000) {//逻辑 ~
$foo += 1;
return false;// 不成立就返回 false
}
return true;
}
$do = true;
do {
// 这里多了一步取反,如果不想要这个取反,那方法里面的返回值反过来就行,只是方法里面条件不成立 返回 false 更加符合常理一些。
$do = !foo();
} while ($do);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…