以下是代码,可以在没有任何条件的情况下完成吗?在这种情况下,删除条件。
function printme(){
static $min=1;
$max = 100;
echo $min.' ';
if($min < $max ){
$min++;
printme();
}
}
printme();
输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
答案 0 :(得分:1)
试试这个
<?php
function printme(){
preg_replace_callback('/ /', function() {
static $i;
print ++$i."\n";
}, str_repeat(' ', 100));
}
printme();
?>
答案 1 :(得分:1)
实用答案,至少是“不”。递归函数必须具有退出条件,导致递归停止。它必须测试该条件。
任何试图不这样做的事情都是“代码高尔夫”,包括上面的Rax答案,其中隐藏必要的条件测试的存在。 (在这种情况下,它隐藏在str_repeat()
中,其中包含一个在100次迭代后停止的循环。)
答案 2 :(得分:0)
你没有说if()
那么while()
怎么样?
function printme(){
static $min=1;
$max = 100;
echo $min.' ';
while($min < $max ){
$min++;
printme();
}
}
printme();
无条件陈述
error_reporting(0);
function printme(){
static $min = 0;
++$min;
$func = "print$min";
$func();
printme();
}
function print1(){echo '1 ';};
function print2(){echo '2 ';};
// 3 - 99
function print100(){echo '100';};
printme();