2013-07-03 3 views
-4

접미사를 만들려고합니다 (이름은 내가 만든 것입니다). 찾아서는 다음과 같습니다 URL .. 여기무한 루프에서 어떻게 벗어날 수 있습니까?

private function explode_url() { 

    if (!empty($this->suffix) and empty($is)) { 
              // look here ------V 
     $url = explode('/', rtrim($_GET['url'], $this->define_suffix())); 
    } else { 
     $url = explode('/', trim($_GET['url'], '/')); 
    } 
    $str = ''; 
    foreach ($url as $key => $value) { 
     if ($key >= 2) { 
      $str = $str . '/' . $value; 
     } else { 
      $data[] = $value; 
     } 
    } 
    $data[] = trim($str, '/'); 
    foreach ($data as $data) { 
     if (!empty($data)) { 
      $result[] = $data; 
     } 
    } 
    return $result; 
} 

그리고는 접미사를 정의하는 기능입니다.

private function define_suffix() { 
     $count = count($this->explode_url()); // <------ look here 
     $count = $count - 1; 
     $keys = array('cnt', 'mtd', 'args'); 
     return $this->suffix[$keys[$count]]; 
    } 

실제로 기능은 훌륭하지만 문제가 있습니다. 무한 루프가 있습니다. 이걸 어떻게 피할 수 있니?

EDIT : 출력 :

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 130968 bytes) in /var/www/cleanmvc/boot.php on line 85 

기능은 무한 루프의 원인이되는, 서로 부른다. 그것이 내가 도움이 필요한 것입니다.

답변

-1

탈출 키워드는 break입니다. 루프 내에 중첩되어있는 경우, 선택 매개 변수를 break(2)에 전달하여 하위 루프에서 여러 루프를 중단 할 수 있습니다. 두 레벨에서 벗어납니다.

무한 루프가 있습니다. foreach ($data as $data) {

+0

"여기보세요"를보세요! 이건 내 질문에 대한 대답이 아니야. – user2544204

+0

무엇? 나는 당신의 질문에 "어떻게 끝없는 반복에서 빠져 나갈 수 있습니까?"라고 대답했습니다. 아마도 귀하의 질문에 적절하게 질문하지 않았거나 제공된 코드가 유효하지 않을 수 있습니다. 나는 당신에게 두 가지 대답을 해 주었고, 다소 관대했다. –

+0

함수들은 서로를 호출하는데, 이것은 무한 루프를 일으킨다. 그것이 내가 도움이 필요한 것입니다. – user2544204

관련 문제