You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 05:02:49