扫码关注官方订阅号
84669人学习
65727人学习
82984人学习
467778人学习
498837人学习
471966人学习
256484人学习
152542人学习
224170人学习
139536人学习
81804人学习
85022人学习
11944人学习
20001人学习
60816人学习
5487人学习
15007人学习
2150人学习
6980人学习
194925人学习
359900人学习
1142人学习
19058人学习
3206人学习
180550人学习
48569人学习
17603人学习
40936人学习
1049人学习
750人学习
32909人学习
PHP报这个错,说内存溢出。
我想要的答案不是如何解决这个问题,而是“为什么”会报这个错?伪构造函数找不到就会报内存溢出呢?还有一些情况好像也是会出现这种错误:图片上传过大..无限循环.. 这些情况还能理解..
但是为何构造函数这里也会报?
ringa_lee
首先,你这里写了个无限递归自己看得出把?程序会一直反复调用_initialize()方法。至于内存溢出,你这里每次调用都会打印一些东西,这些东西都是需要存放空间的。其次无限进栈也需要消耗内存。这里出现内存溢出主要是因为PHP程序还没爆栈,就先超过内存限制了。
_initialize()
ArrayList<Object> list = new ArrayList<Object>();
while(true){ list.add(new Object()); }
我猜你是第15行的拼写错了。你应该是想写成
if (method_exists($this, '_initialize2')) { $this -> _initialize2(); }
但是你写成了
if (method_exists($this, '_initialize2')) { $this -> _initialize(); }
很明显的陷入了无限递归死循环,最终的结果是程序运行到超出php内容容量限制,就报错了!~可能正如楼上说的,代码问题!
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2024 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号
精品班
技术支持
技术咨询
学习群
会员优惠
返回顶部
首先,你这里写了个无限递归自己看得出把?程序会一直反复调用
_initialize()
方法。至于内存溢出,你这里每次调用都会打印一些东西,这些东西都是需要存放空间的。其次无限进栈也需要消耗内存。这里出现内存溢出主要是因为PHP程序还没爆栈,就先超过内存限制了。
ArrayList<Object> list = new ArrayList<Object>();
我猜你是第15行的拼写错了。你应该是想写成
但是你写成了
很明显的陷入了无限递归死循环,最终的结果是程序运行到超出php内容容量限制,就报错了!~可能正如楼上说的,代码问题!