FPDF - 如何使用Write_html修复“致命错误:调用未定义的方法PDF::FPDF()”


FPDF - How to fix the "Fatal error: Call to undefined method PDF::FPDF()" Using Write_html

我正在使用此脚本 http://fpdf.org/en/script/script50.php,但出现错误:

致命错误:在第 55 行的 MyPath/html_table.php 中调用未定义的方法 PDF::FPDF()

正是这个对FPDF的调用引发了异常:

$this->FPDF($orientation,$unit,$format);

我不明白为什么,知道pdf类扩展了FPDF,并且我将fpdf.php文件与html_table.php文件放在同一目录中,有什么方法可以解决此错误吗?谢谢<</p>

div class="answers">

修复了它。

我实际上需要替换:

$this->FPDF($orientation,$unit,$format);

由:

$this->__construct($orientation,$unit,$format);
原始脚本有此错误,

因此对于想要使用该脚本的任何人,请不要忘记先修复此错误。祝你好运。

我在您共享的脚本中找不到$this->FPDF。扩展类时,扩展类位于扩展该类的类的$this中。当您创建此类的新实例时,扩展类的构造函数将始终运行,除非您自己定义构造函数,您在 PDF 类中执行此操作,如您共享的脚本所示。如果你想运行你扩展的类的构造函数,你应该使用parent::__construct();从扩展类的构造器中执行此操作,它告诉PHP它应该在那个时候运行父类(扩展类)的构造器。您共享的脚本中已经出现这种情况:

    //Call parent constructor
    parent::__construct($orientation,$unit,$format);

因此,当你运行new PDF()它将调用 PDF 类的构造器,该构造函数将调用 FPDF 的构造函数。当您使用 $this->__construct($orientation,$unit,$format); 行再次调用答案中所述的构造函数时,这将导致 PDF 构造器被调用两次。