0

当我的循环完成但它似乎没有发生时,我试图返回 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);
}
}

好的,所以上面有问题的函数,但只是为了帮助你,函数的基本思想是我循环认为一个数据数组(上面没有显示)但是这个数据是分页的,所以它需要转到下一个' page' 一旦它完成了第一页和几页,所以我想要做的是当它完成循环时认为它全部返回 true。

可能是一个简单的修复。

但我无法解决。

4

2 回答 2

0

将您的内容编辑echo (true);为:return true; 然后调用您的函数:

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

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

于 2013-04-05T21:40:10.670 回答
0

您递归地调用了“loop_me()”,但您需要返回它。

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

当然也改变回声返回!

于 2013-04-05T21:41:15.243 回答