PHP函数调用本身不返回任何内容

时间:2018-06-10 08:53:32

标签: php function variables return echo

这不会返回任何内容:

<?php

function cc($i=0) {
    if ($i >= 2) {
       return $i;
    }
    cc($i+1);
}
echo cc(0);

但是回声它完美地运作:

<?php

function cc($i=0) 
{
    echo $i;
    if($i>=2) {
       return $i;
    }
    cc($i+1);
}
echo cc(0);

看起来很安全,但我很确定背后有合理的解释:)

1 个答案:

答案 0 :(得分:1)

它没有返回任何内容,因为你错过了递归调用中的返回。使用此:

function cc($i=0) {
  if($i>=2){
    return $i;
  }
  return cc($i+1);
}

使用三元运算符:

function cc($i=0) {
  return $i>=2 ? $i : cc($i+1);
}