2013-07-03 46 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]]; 
    } 

实际上职能的工作不错,但有一个问题。有一个无限循环。我怎么能逃避这个?

编辑: 输出:

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

看 “看这里” S!这不是我的问题的答案。 – user2544204

+0

什么?我清楚地回答了你的问题:“我怎么能从无限循环中逃脱?”。也许你的问题没有被正确地问,并且/或者提供的代码是无效的。我向你提供了两个答案,相当慷慨。 –

+0

这些函数互相调用,导致无限循环。这是我需要帮助的。 – user2544204