gpt4 book ai didi

php - FPDF拒绝通过继承合作

转载 作者:可可西里 更新时间:2023-11-01 00:35:47 26 4
gpt4 key购买 nike

下面有两个代码示例。一个有效,但第二个(使用 extend 创建新的类包装器)无效。

请注意,我已经大大简化了以下示例。

方法#1

page.php:

<?php

include("fpdf.php");
$pdf = new FPDF;
$pdf->AddPage();
$pdf->SetFont('Arial','',11);
$pdf->Output();

?>

这按预期工作。它会创建一个空白页面。

方法#2

但是,通过继承使用 FPDF,我得到一个错误(见下面的代码块)。

myPDF.php:

<?php

require ("fpdf.php");

class myPDF extends FPDF {

function createMyPage() {
$this->AddPage();
$this->SetFont('Arial','',11);
$this->Output();
}

}

?>

page.php:

<?php

include("myPDF.php");
$pdf = new myPDF;
$pdf->createMyPage();

?>

第二种方法会产生以下 PHP 警告和 FPDF 错误:

Warning: in_array() expects parameter 2 to be array, null given in /var/www/fpdftest/fpdf.php on line 526 FPDF error: Undefined font: helvetica

知道我在这里遗漏了什么吗?

最佳答案

当你创建你的包装类时,一定要调用父构造函数:

<?php // Always use the full <?php open tag

require ("fpdf.php");

class myPDF extends FPDF {

// Or, __construct() if you only care about PHP5
function myPDF($orientation='P', $unit='mm', $size='A4') {
// Call parent constructor
$this->FPDF($orientation,$unit,$size);
// Initialization
$this->B = 0;
$this->I = 0;
$this->U = 0;
$this->HREF = '';
}

function createMyPage() {
$this->AddPage();
$this->SetFont('Arial','',11);
$this->Output();
}

}

http://fpdf.org/en/tutorial/tuto6.htm

关于php - FPDF拒绝通过继承合作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8112082/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com