我一直在为以下代码犯下致命错误。我该怎么做才能摆脱这个错误?我试图建立一个基于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();
?>
答案 0 :(得分:11)
您已创建无限递归方案。看:
Database_Model
和Session_Model
延长Model
。Database_Model
时,从Model
继承的构造函数将在构造函数$this->db
和$this->session
上实例化另外两个对象。Model
,因此他们也会自己实例Database_Model
和Session_Model
。