我在使用以下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来自哪里。