2016-11-15 12 views
0

私は配列を持っている次の()配列誤差

private function nextStep() 
    { 
     echo "Next\r\n"; 
     return next($this->stack); 
    } 

私は無限ループでこの関数を呼び出すと、私は確かにこの配列が一杯であることを条件になるまで、私はnextStepを呼び出してはいけませんもう

だから、私はFatal error: Maximum execution time of 30 seconds exceeded in private function nextStep()

にエラーがいただきました、それがどういう意味を取得し、どのように修正しますか?

私はこれを呼び出す:だから、初期化関数である

private function parseHTML() 
{ 

    if ($this->nextStep() == false) { 

    sleep($this->timeout); 
    $this->parse(); 

    } else { 

    $this->parseNextStack(); 
    } 

} 

private function currentStack() 
{ 
    $this->currentStackItem = current($this->stack); 

} 

private function nextStep() 
{ 
    try { 
    return next($this->stack); 
    } 

    catch (Exception $e){ 

    echo count($this->stack); die(); 
    } 

} 

private function parseNextStack(){ 

    sleep($this->timeout); 
    $this->nextStep(); 
    $this->currentStack(); 
    $this->parseHTML(); // HERE IS LOOP 
} 

:あなたはループは、おそらくその後、配列$スタックを、それを終了するには、正しい条件がありましたことを確信している場合は、そのスクリプトからparseHTML()

+0

[致命的なエラー:最大実行時間が30秒を超えました](http://stackoverflow.com/questions/5164930/fatal-error-maximum-execution-time-of-30-seconds-exceeded) – Henders

+1

問題のループを提供していただけますか? '$ this-> stack'の大きさはどれくらいですか? –

+0

一瞬でこれを共有します – MisterPi

答えて

1

開始され大きすぎる。最大実行時間をphp.iniファイル(max_execution_timeパラメータ)で増やすことができます。

+0

更新された質問をご覧ください – MisterPi