【发布时间】:2010-09-27 13:38:22
【问题描述】:
这是一个经常讨论的问题,但到目前为止似乎没有解决方案适合我的问题。 我正在生成一个带有 $pdf = new FPDF(); 的pdf .这工作正常。但现在我想要一个带有页码的页脚。在尝试了很多事情后我发现,如果要设置页脚,则需要使用 $pdf = new yourPDFclassName(); 创建一个实例; (它扩展了父 FDF 类)。
再次运行整个过程我收到错误:第 16 行 /..blabla/yourPDFclassName.php 中允许的内存大小为 33554432 字节已用尽(尝试分配 77 字节)
有谁知道为什么在我调用子类时会出现此错误?我的意思是它适用于父类......顺便说一句,77字节比33554432字节小得多......嗯
class REPORTSPDF extends FPDF { .... }
16: $pdf = new REPORTSPDF();
第 16 行在 REPORTSPDF 的构造函数中。在第 16 行之前没有其他行。它只是在调用 $pdf = new REPORTSPDF() 时崩溃。
没有页脚功能我有同样的错误。奇怪的是,当我将第 16 行更改为
$pdf = new FPDF();
一切正常(除了我没有页脚)。
【问题讨论】:
-
能否请您发布您的代码(特别是前 16 行到问题发生的位置?)?您的 pdf 中是否有任何可能导致问题的循环,或者甚至没有一个简单的 hello-world 工作?如果您不考虑页脚,您自己的课程是否有效?
-
我在第一篇文章中更新了信息。
-
添加页脚显然会消耗更多内存,因为整个内容必须保存在内存中。这就是为什么不添加页脚时不会超出内存限制的原因。 edit 等等,如果第 16 行在 REPORTSPDF 的构造函数中,并且它创建了一个 REPORTSPDF 的实例,那会不会陷入循环?
-
@Andrei - 怀疑你对循环的引用是问题的症结所在,当然代码应该简单地调用 parent::__construct() 并使用 $this 引用
-
@Mark - 确实,对不起......认为它已经足够清楚了。