可以回声真实,但不会回来

时间:2013-04-05 21:37:58

标签: php

我试图在循环结束时返回true,但似乎没有发生。 我可以得到它回应真或假或任何文本,但返回什么都不做。

想知道是否有人可以解释为什么会这样。

这是我删除了数据库调用的(有点)函数,例如它并不重要。

function loop_me(){
// this part is not important...
    $finished = false;
    $done  = 0;
    $userC = 1000;
    $page  = 0;
    $count = 10;
    $array = array()
    $data = array('1','2','3') // big array of data...

    if($done < $userC){

    for($i=0; $i<$count; $i++){
        $array[] = $data[$i];
    }


// bellow is the important part...      
    if($done >= $userC){
        $finished = true;
    }else{
       $page++;
       loop_me();
    }
}

if($finished){
// If I echo true it outputs 1 (this is fine)
// if I return true I get nothing this is got good as I want to do an IF statement on the 
// output, which I can't do if it does not.
    echo(true);
}
}

好的,问题的功能在上面,但只是为了帮助你,函数的基本思想是我循环思考一个数据数组(上面没有显示),但这个数据是分页的,所以它需要去下一页&#39;一旦它完成了第一个和几个页面所以我想要做的是当它完成循环时认为它都返回true。

可能是一个简单的修复。

但我无法解决这个问题。

2 个答案:

答案 0 :(得分:0)

将您的echo (true);修改为:return true;然后调用您的函数:

$var = loop_me();
echo $var;    // If a success you should see true. 

如果在调用定义的函数时出现问题,您还应该考虑添加返回false。

答案 1 :(得分:0)

你递归地调用了'loop_me()',但你需要返回它。

}else{
   $page++;
   return loop_me();
}

当然也会改变echo返回!