PHP父类调用子类方法触发内存耗尽问题及解决示例
PHP类关联导致内存超限问题及解决方法
我有两个相互关联的PHP类,尝试用extends继承而非构造函数来整合它们,但父类无法调用子类方法,且没有任何结果或错误输出,仅出现内存超限警告。
报错示例代码
<?php class Me { public $you; public function __construct() { $this->you = new You; } public function Hi() { return 'Hi You'; } public function WhatYouSaid() { return $this->you->Me(); } } class You extends Me { public function Me() { return 'Yes Me'; } } $talk = new You; print_r($talk->WhatYouSaid());
收到的错误
Fatal error: Allowed memory size of xxx bytes exhausted (tried to allocate xx bytes)
解决方案代码
参考@Nigel Ren的答案后,我找到了解决方案,示例代码如下:
<?php class DataValidate { public $data; public function __construct() { $this->data = new Data; } public function inputValidate($newData) { // 验证逻辑 if ($this->data->get_data($newData['Identifier'], 'nameId')) { return false; // 已存在 } return $newData; } } class Data { public $db; public $validate; public function __construct() { $this->db = new Database; $this->validate = new DataValidate; } public function get_data($identifier, $col) { return $this->db->select($identifier, $col='*'); } public function inputValidate($newData) { return $this->validate->inputValidate($newData); } } $data = new Data; print_r($data->inputValidate($some_id));
内容的提问来源于stack exchange,提问作者R Cahyo
相关产品推荐
相关产品推荐

