【发布时间】:2016-07-16 18:58:17
【问题描述】:
我有 OOP 编程的基本技能,我正在尝试创建一个非常简单的 MVC 框架。奇怪的是,当我实例化应用程序时 index 方法会调用自己并且无法找出原因。
我的索引文件有这个:$app = new App();
我的引导程序如下所示:
class App {
private $_controller = null;
public function __construct() {
$default_controller = 'controller/index.php';
require $default_controller;
$this->_controller = new Index();
}
}
这是我的主要控制器类:
class Controller {
public function loadModel($name) {
require('models/'. strtolower($name) .'.php');
$model = new $name;
return $model;
}
public function loadView($name) {
$view = new View($name);
return $view;
}
}
我的主要模型类:
class Model {
public function __construct() {
$this->db = new DB(DB_HOST, DB_USER, DB_PASS, DB_NAME, DB_PORT);
}
}
这是我的索引类:
class Index extends Controller {
public function index() {
$example = $this->loadModel('Index_Model');
$something = $example->content('test');
$view = $this->loadView('index');
$view->set('content', $something);
$view->render();
}
}
【问题讨论】:
-
在 PHP 4 中,与类同名的方法用作构造函数 - 它仍然用作兼容性回退。 (这里在某些方面不区分大小写。)
-
那么你的意思是如果类和它的方法有相同的名字,当我实例化这个类时方法会被调用?