我有OOP编程的基本技能,我想创建一个非常简单的MVC框架。奇怪的是,索引方法在我实例化应用程序时调用自身,但无法找出原因。方法调用自己,当我实例化类
我的索引文件有这样的:$ 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中,与作为构造函数的类相同名称的方法 - 它仍被用作兼容性回退。 (某些方面的不区分大小写在这里最重要。) – CBroe
所以,如果类和它的方法具有相同的名称,那么当我实例化类时方法将被调用? – Dejavu