假设您的意思是recursionfunction( 1 )
而不是,则您的函数abc( 1 )
中缺少 a :return
function recursionfunction($a)
{
if($a<10)
{
$a=$a+1;
return recursionfunction($a);
// missing -^
}else{
return $a;
}
}
$result = recursionfunction(1);
echo $result
编辑
在您进行(大量)编辑之后,整个情况就不同了。让我们逐行浏览函数,看看会发生什么:
// at the start $a == 1, as you pass the parameter that way.
// $a<10, so we take this if block
if($a<10)
{
$a=$a+1;
// $a now holds the value 2
// call the recursion, but do not use the return value
// as here copy by value is used, nothing inside the recursion will affect
// anything in this function iteration
recursionfunction($a);
}
// $a is still equal to 2, so we return that
return $a;
可以在这个问题中找到更多详细信息:PHP 变量是按值传递还是按引用传递?
可能您又想添加一条附加return
语句,以实际使用递归的值:
function recursionfunction($a)
{
if($a<10)
{
$a=$a+1;
return recursionfunction($a);
// add ---^
}
return $a;
}