【问题标题】:How can i escape from endless loop?我怎样才能摆脱无限循环?
【发布时间】:2013-07-03 19:44:52
【问题描述】:

我正在尝试创建后缀(名称是我所做的)。 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

函数相互调用,导致死循环。这就是我需要帮助的地方。

【问题讨论】:

    标签: php


    【解决方案1】:

    转义循环的关键字是break。如果您嵌套在循环中,则可以通过传入可选参数来中断子循环中的多个循环:break(2) - 分两个级别。

    你的无限循环在这里:foreach ($data as $data) {

    【讨论】:

    • 看“看这里”!这不是我的问题的答案。
    • 什么?我已经清楚地回答了你的问题“我怎样才能摆脱无限循环?”。也许您的问题没有正确提出,和/或提供的代码无效。我为你提供了两个答案,我相当慷慨..
    • 函数相互调用,导致死循环。这就是我需要帮助的地方。
    • 你能发布你想要完成的事情吗?
    猜你喜欢
    • 1970-01-01
    • 2022-12-18
    • 1970-01-01
    • 2020-01-05
    • 2017-09-18
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    • 2021-01-27
    相关资源
    最近更新 更多