1

大家好,我在这里只需要一点帮助来访问类外的数据数组我对如何在类外显示变量感到非常困惑这是我的代码如下:

<?php

date_default_timezone_set('Asia/Manila');

require('resources/fpdf/fpdf.php');

class PDF extends FPDF {

    function Header(){

        //HERE IS THE PLACE WHERE SHOULD I PUT THE ARRAY, BUT I CANT ACCESS IT INSIDE

        $this->SetFont('Arial','B',10);
        $this->Cell(180,5,'PURCHASE ORDER',0,0,'C');
        $this->Ln();
        $this->SetFont('Arial','',9);
        $this->Cell(40,5,'Suppliers Name:'.$data['spname'].'  ');
        $this->Ln();
        $this->SetFont('Arial','',9);
        $this->Ln(20);
    }
}

$query = "SELECT * FROM po_order_details WHERE order_code = '".$code."'"; 
$result = $this->db->query($query);
foreach($result->result_array() as $row){
    $data[] = array($row['item_qty'],  //THIS IS THE ARRAY THAT I NEED TO GET
                    $row['spname'], 
                    $row['spaddress'], 
    );
}
$this->session->set_userdata('session_data',$data);
//Column titles
$pdf = new PDF(); 
$header = array('QTY','ITEM / DESCRIPTION' , 'UNIT PRICE', 'TOTAL AMOUNT'); // CHANGE THIS ALSO
$pdf->SetFillColor(255,0,0);
$pdf->Ln();
$pdf->AddPage();
$pdf->BuildTable($header,$data);
$pdf->Ln();
$pdf->Output();

?>

这就是我希望你能帮助我的全部

4

2 回答 2

0

为什么不直接更改 Header 方法的原型,然后像这样将数组作为参数传递。

<?php

date_default_timezone_set('Asia/Manila');

require('resources/fpdf/fpdf.php');

class PDF extends FPDF {

    function Header( &$titles, &$data ){

        //HERE IS THE PLACE WHERE SHOULD I PUT THE ARRAY, BUT I CANT ACCESS IT INSIDE
        // use $titles and $data as you like here

        $this->SetFont('Arial','B',10);
        $this->Cell(180,5,'PURCHASE ORDER',0,0,'C');
        $this->Ln();
        $this->SetFont('Arial','',9);
        $this->Cell(40,5,'Suppliers Name:'.$data['spname'].'  ');
        $this->Ln();
        $this->SetFont('Arial','',9);
        $this->Ln(20);
    }
}

$query = "SELECT * FROM po_order_details WHERE order_code = '".$code."'"; 
$result = $this->db->query($query);
foreach($result->result_array() as $row){
    $data[] = array($row['item_qty'],  //THIS IS THE ARRAY THAT I NEED TO GET
                    $row['spname'], 
                    $row['spaddress'], 
    );
}
$this->session->set_userdata('session_data',$data);
//Column titles
$pdf = new PDF(); 

$header = array('QTY','ITEM / DESCRIPTION' , 'UNIT PRICE', 'TOTAL AMOUNT'); // CHANGE THIS ALSO
$pdf->Header( $header, $data );

$pdf->SetFillColor(255,0,0);
$pdf->Ln();
$pdf->AddPage();
$pdf->BuildTable($header,$data);
$pdf->Ln();
$pdf->Output();

?>
于 2013-08-28T13:13:22.597 回答
0

您可以将其作为参数传递然后返回结果吗?喜欢:

function Header($param_array = array()) {
  // ... modifications, bla bla
  return $result_array;
}

然后查找调用该 Header() 的函数并将该数组参数一直传递到该函数。

当然,这里的缺点是您将修改 FPDF 类,并且如果您将来需要它,将无法正确更新到较新的版本。

于 2013-08-28T13:10:03.077 回答