0

ループが終了したときに true を返そうとしていますが、発生していないようです。true または false または任意のテキストをエコーするようにできますが、何も返されません。

誰かがこれがなぜなのか説明できるのだろうか.

これは、データベース呼び出しなどを削除した(ちょっとした)関数であり、重要ではありません。

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 に答える