首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP类扩展TCPDF

PHP类扩展TCPDF
EN

Stack Overflow用户
提问于 2017-01-19 22:42:14
回答 2查看 2.1K关注 0票数 1

TCPDF示例002显示了扩展类中的自定义页眉/页脚方法。效果很好。

我有一个更一般的类层次结构

在一个文件中

代码语言:javascript
复制
Class Three extends Two{
  public function Header(){
    die;
  }
  public function Footer(){
    die;
  }
}

在另一个文件

代码语言:javascript
复制
Class Two extends One{
  public function Header(){
    die;
  }
  public function Footer(){
    die;
  }
}

在另一个文件

代码语言:javascript
复制
Class One extends TCPDF{
  public function Header(){
    die;
  }
  public function Footer(){
    die;
  }
}

无论我将函数Header()Footer()放在哪里(类为1、2或3),它们都不会覆盖TCPDF中的基本方法。

有人能告诉我重写方法对我是如何失败的吗?从不访问die语句,并显示基本标头,因此我的重写不起作用。

更新:

get_declared_classes显示,所有类都按正确的顺序加载。

代码语言:javascript
复制
[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"
EN

回答 2

Stack Overflow用户

发布于 2017-01-19 22:57:01

问题是,您正在扩展一个尚未加载的类。反转类定义的顺序。

如果打开error_reporting(E_ALL),您将看到一些类似于以下内容的错误:

“致命错误:在x行的path/to/file中找不到‘三’类”

因此,仅仅逆转它们就能解决这一问题:

代码语言:javascript
复制
include('TCPDF.php');

//In yet another file
Class One extends TCPDF
{
    public function Header()
    {
        die;
    }

    public function Footer()
    {
        die;
    }
}

//In another file
Class Two extends One
{
    public function Header()
    {
        die;
    }

    public function Footer()
    {
        die;
    }
}


//in one file
Class Three extends Two
{
    public function Header()
    {
        die;
    }

    public function Footer()
    {
        die;
    }
}
票数 0
EN

Stack Overflow用户

发布于 2017-01-21 23:21:20

我有个密码

代码语言:javascript
复制
$pdf = new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

在……里面

代码语言:javascript
复制
Class One extends \TCPDF

有效地拥有两个TCPDF实例!

一切又好起来了。有一段时间是。谢谢。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41753052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档