TCPDF示例002显示扩展类中的自定义页眉/页脚方法。它工作正常。
我有一个更通用的类层次结构
在一个文件中
Class Three extends Two{
public function Header(){
die;
}
public function Footer(){
die;
}
}
在另一个档案中
Class Two extends One{
public function Header(){
die;
}
public function Footer(){
die;
}
}
在另一个文件中
Class One extends TCPDF{
public function Header(){
die;
}
public function Footer(){
die;
}
}
无论在哪里(第一,第二或第三类)我放置我的函数Header()
和Footer()
,它们都不会覆盖TCPDF中的基本方法。
有人可以告诉我方法覆盖是如何失败的吗?永远不会到达die语句,并显示基本标题,因此我的覆盖不起作用。
更新
get_declared_classes显示所有类都以正确的顺序加载。
[316] => String(5) "TCPDF"
[317] => String(15) "TCPDF_FONT_DATA"
[318] => String(11) "TCPDF_FONTS"
[319] => String(12) "TCPDF_COLORS"
[320] => String(12) "TCPDF_IMAGES"
[321] => String(12) "TCPDF_STATIC"
[322] => String(24) "Drupal\pdf\One"
[323] => String(30) "Drupal\pdf\Two"
[324] => String(38) "Drupal\pdf\Three"
答案 0 :(得分:0)
问题是你正在扩展一个尚未加载的类。颠倒类定义的顺序。
如果您启用temporary
,您应该会看到类似于以下错误:
"致命错误:班级'三'在x"
行的路径/到/文件中找不到
所以只需逆转它们就可以解决它:
error_reporting(E_ALL)
答案 1 :(得分:0)
我有这个代码
$pdf = new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
in
Class One extends \TCPDF
有效地拥有两个TCPDF实例!!
一切都很精彩。有一段时间了。 THX。