2016-11-15 2 views
0

У меня есть массив: $stack и функция, которая идет этот стек:Next() ошибка массива

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

Я называю это функции в цикле бесконечности, но я уверен, что этот массив заполнен до состояния, то я не DonT называть 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

Смежные вопросы