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


Allowed memory size of 134217728 bytes exhausted (tried to allocate 65488 bytes). What to do?

我不断收到以下代码的致命错误。我应该怎么做才能摆脱这个错误?我正在尝试制作一个基于 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_ModelSession_Model扩展Model .
  • 当你实例化Database_Model 时,从Model继承的构造函数将在构造函数上实例化两个附加对象,$this->db$this->session
  • 这些新对象也从Model中脱离,所以它们也会实例化自己的Database_ModelSession_Model
  • 这种情况无限持续下去...
相关文章: