我不断收到以下代码的致命错误。我应该怎么做才能摆脱这个错误?我正在尝试制作一个基于 MVC 框架的网站,问题出在我的模型上。其他一切都很好。
<?php
class Model {
private $db;
private $session;
public function __construct() {
$this->db = new Database_Model;
$this->session = new Session_Model;
}
}
/**
* Database Class
*/
class Database_Model extends Model {
public function getUserInfo() {
return array(
'Thomas', 'Jane'
);
}
}
/**
* Session Class
*/
class Session_Model extends Model {
public function getUserId() {
return $_SESSION['uid'];
}
}
$b = new Database_Model;
$b->getUserInfo();
?>
您已经创建了一个无限递归方案。看:
-
Database_Model
和Session_Model
扩展Model
. - 当你实例化
Database_Model
时,从Model
继承的构造函数将在构造函数上实例化两个附加对象,$this->db
和$this->session
。 - 这些新对象也从
Model
中脱离,所以它们也会实例化自己的Database_Model
和Session_Model
。 - 这种情况无限持续下去...