我正在使用此脚本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文件相同的目录中,有没有办法解决这个问题错误?谢谢
答案 0 :(得分:3)
修正了它。
我实际上需要更换:
$this->FPDF($orientation,$unit,$format);
由:
$this->__construct($orientation,$unit,$format);
原始脚本存在此错误,因此对于想要使用该脚本的任何人,请不要忘记先修复此错误。祝你好运。
答案 1 :(得分:0)
在您共享的脚本中的任何地方都找不到$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构造函数被调用两次。