有通常的递归功能。它迭代两次 - 第一次主迭代和第二次内部迭代:
function recursive() {
global $a, $stop;
$stop++;
foreach($a as $val) {
echo $val;
if ( $stop < 2 )
recursive();
}
}
$a = array(1,2);
$stop = 0;
recursive();
结果是1122
。一切都是对的。第二次迭代在第一次:{{1}}
我更改了服务器和新服务器回声1(12)2
。第二次迭代后第一次循环停止:112
它总是停止。只有一次迭代是可能的,然后就完成了。
这台服务器有什么问题?是php的选择还是什么?
答案 0 :(得分:0)
尝试使用静态值而不是全局变量(在您的情况下没用):
function recursive($a) {
static $stop = 0;
$stop++;
foreach($a as $val) {
echo $val;
if ( $stop < 2 )
recursive($a);
}
}
$a = array(1,2);
recursive($a);