允许的内存大小为134217728字节耗尽(尝试分配65488字节)。该怎么办?

时间:2012-04-02 15:57:08

标签: php memory

我一直在为以下代码犯下致命错误。我该怎么做才能摆脱这个错误?我试图建立一个基于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();
?>

1 个答案:

答案 0 :(得分:11)

您已创建无限递归方案。看:

  • Database_ModelSession_Model延长Model
  • 当您实例Database_Model时,从Model继承的构造函数将在构造函数$this->db$this->session上实例化另外两个对象。
  • 这些新对象也来自Model,因此他们也会自己实例Database_ModelSession_Model
  • 这无穷无尽......