PHP类扩展超过RAM - CodeIgniter

时间:2012-05-16 06:26:23

标签: php class codeigniter overloading extends

我通过完全替换它来修改模型类。我还希望打破不同类中的大多数组件,并在需要时加载它们。必须在构造函数中加载此特定类。我的课程的简单模型如下:

Model.php

class CI_Model {
     function __construct(){
         load_class('Model_validations', 'core');
     }
 }

Model_validations.php

class CI_Model_validations extends CI_Model {
     private $validations = array();
     public function validates($field){
     }
 }

我从以下计划得到的是:

  

致命错误:第233行的/xampp/htdocs/cms/system/core/Controller.php中允许的内存大小为134217728个字节(尝试分配261904个字节)

此外,我尝试删除extends CI_Model,它运行正常。 我们也可以说加载后会立即调用CI_Model_validations::validate()方法,但它是空的,我看不出它会如何导致问题。

有什么想法吗? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

这是因为CI_Model尝试加载CI_Model_validations,它会在继承CI_Model时再次尝试加载CI_Model。并且CI_Model尝试再次加载CI_Model_validations,依此类推......

更新:this answer我的上述假设似乎错了。它说load_class是一个单例加载器。