我正在使用tFPDF类。
我正在使用此代码扩展此类以获取自定义页眉和页脚
class PDF extends tFPDF{
function Header(){
$this->Image('../../images/logo-admin.png',10,6,30);
$this->SetFont('DejaVu','',13);
$this->Cell(247,10,$produto,0,0,'C',false);
$this->SetDrawColor(0,153,204);
$this->SetFillColor(98,197,230);
$this->SetTextColor(255);
$this->Cell(30,10,date('d/m/Y'),1,0,'C',true);
$this->Ln(20);
}
function Footer(){
$this->SetY(-15);
$this->SetFont('Arial','',8);
$this->Cell(0,10,'P'.chr(225).'gina '.$this->PageNo().'/{nb}',0,0,'C');
}
}
我需要做的是以某种方式使用不属于该类的变量更改$produto
。
我正在使用$pdf = new PDF();
调用此课程。
如何将变量传递给此类,以便我可以使用类似$pdf = new PDF('SomeString');
之类的字符串,并在类$this->somestring = $somestringfromoutside
答案 0 :(得分:3)
您可以使用protected
var并声明一个setter。
class PDF extends tFPDF {
protected $_produto = NULL;
public function Header(){
/* .. */
$this->Cell(247,10,$this->_getProduto(),0,0,'C',false);
/* .. */
}
public function Footer(){
/* .. */
}
public function setProduto($produto) {
$this->_produto = $produto;
}
protected function _getProduto() {
return $this->_produto;
}
}
// Using example
$pdf = new PDF();
$pdf->setProduto('Your Value');
$pdf->Header();
答案 1 :(得分:1)
最好的办法是使用__construct()方法和$ myString的默认参数
class PDF extends tFPDF{
public $somestring;
function __construct($myString = '') {
parent::__construct();
$this->somestring = $myString;
}
function Header(){
$this->Image('../../images/logo-admin.png',10,6,30);
$this->SetFont('DejaVu','',13);
$this->Cell(247,10,$produto,0,0,'C',false);
$this->SetDrawColor(0,153,204);
$this->SetFillColor(98,197,230);
$this->SetTextColor(255);
$this->Cell(30,10,date('d/m/Y'),1,0,'C',true);
$this->Ln(20);
}
function Footer(){
$this->SetY(-15);
$this->SetFont('Arial','',8);
$this->Cell(0,10,'P'.chr(225).'gina '.$this->PageNo().'/{nb}',0,0,'C');
}
}
答案 2 :(得分:0)
如果您特意只尝试注入$ producto变量。在代码中进行一次更改就很容易了:
function Header($producto){
这将允许您将参数传递给Header函数调用。
像这样:
$tfpdf = new tFPDF();
$tfpdf->Header($producto);
如果你真的想在实例化时传递值,那么你需要定义一个构造函数,可能还有一个类属性来存储你的$ producto值。然后,您将$ producto值传递给构造函数并相应地设置属性。然后在您的标题函数中,您将引用$ this-> producto而不是$ producto。