PHP尝试运行require_once,即使它不应该

时间:2011-06-15 02:22:07

标签: php

我在使用以下PHP代码时遇到了最奇怪的时间。即使if语句为true,require_once也会在else语句中运行。同样奇怪的是,else语句中的$ controller接收了“application”的值。除了$ total的值之外,没有其他与以下内容相关的代码。

    $total = $uri->total();

    if($total == 0) {

        //Home Page Controller
        $controller = 'index';
        $method = false;

    } else {

        $controller = $uri->segment(1); //value is "account"

        if($uri->segment(2) !== false) {
            $method = $uri->segment(2); //value is "login"
        } else {
            $method = false;
        }
    }

    require_once(APPPATH.'controllers/'.$controller.EXT);

    $$controller = new $controller;

    if($method != false) {
        $$controller->$method();
    } else {
        $$controller->index();
    }

编辑:我修复了双重代码,以便在if或else中不会调用相同的代码两次。当我运行它时,代码工作,但我在require_once所在的行上出现错误:找不到application.php

这很奇怪,因为require_once已经加载了正确的类,但是我收到一个错误,它无法找到正确的文件。什么会导致它加载两次?我已经检查过以确保这个PHP所在的文件没有加载两次。

这是我正在处理的所有代码,除了在此处找到的URI类:https://github.com/chrisabrams/PHP-URI-Class

我不确定application.php来自哪里。

2 个答案:

答案 0 :(得分:0)

'if'和'else'块中都有相同的require_once语句。

答案 1 :(得分:0)

此问题已得到解决:http://codeigniter.com/