0

writeHTML スクリプト (ここ: http://www.fpdf.org/en/script/script41.php ) とチュートリアル 6 のヘッダーとフッター (ここ: http://www.fpdf ) を使用しようとしています。 .org/en/tutorial/tuto2.htm )。

私のコードは次のようになります。

<?php
require_once('WriteHTML.php');

class PDF extends FPDF
{
     // Page footer
     function Footer()
     {

     $this->SetY(-30);
     $this->SetFont('Arial','I',8);     
     $this->Cell(0,10,'Page '.$this->PageNo(),0,0,'C');
     $html = '<p>some HTML</p>';

     $this->WriteHTML($html);
     }

     // Some more functions... header, PrintChapter etc... 
}

$pdf = new PDF();
$pdf->SetTitle($title);
$pdf->AddPage();
$pdf->PrintChapter(1,'A RUNAWAY REEF','test.txt'); // print text file content
$pdf->Output();
?>

次のエラーが表示されます。

Call to undefined method PDF::WriteHTML() in /path/to/test2.php on line 15

ここで何が欠けていますか?

4

1 に答える 1

2

の一部ではPDF_HTMLなくFPDF、を拡張する必要があります。WriteHTMLPDF_HTML

継承を機能させたい場合は、使用するクラスを常に拡張する必要があります。あなたが拡張したいとしましょうPDF_Index、あなたはまだWriteHTMLどこかの継承に必要です。

多分

PDF extends PDF_Index 

PDF_Index extends PDF_HTML

または、

PDF_HTML extends PDF_Index

しかし、それを機能させるには、チェーン内に両方が必要です。

両方を継承チェーンに入れないと、使用していないブランチで使用可能な関数を使用できなくなります。

       ---> PDF_HTML
     /
FPDF ----> PDF_Index ----> PDF

、PDF_HTMLの関数はPDFでは使用できません

于 2012-12-18T14:00:31.780 に答える