2014-01-22 79 views
0

我正在使用TCPDF和Codeigniter。我試圖用我的MYSQL-DB中的信息創建一個自定義標題:$header_contentTCPDF導入變量擴展名

Allthough我無法將變量導入到類MYPDF中,但沒有出現錯誤,表明該變量不存在。

如何將變量導入類中?

我確定有一個簡單的解決方案,我只是無法弄清楚! :)

控制器/ pdf.php

class Pdf extends CI_controller { 

    public function __construct() 
    { 
     parent::__construct(); 
     $this->load->model('item_model'); 
    } 


    public function create($nr = 1) 
    { 
     $data['pd']= $this->item_model->get('personal_details'); 

     require_once APPPATH.'third_party/tcpdf/tcpdf.php';  

     $this->load->view('create_1', $data); 
    } 
} 

查看/ create_1.php

$header_content = $pd->fname.' '.$pd->sname; 
    $header_font = $pd->font.; 

    class MYPDF extends TCPDF 
    { 
     function __construct() 
     { 
      parent::__construct(); 
     } 

     //Page header 
     public function Header() 
     { 
      // Set font 
      $this->SetFont($header_font, '', 10); 

      // Title 
      $this->Cell(0, 15, $header_content, 0, false, 'L', 0, '', 0, false, 'M', 'M'); 
     } 
    } 

    // create new PDF document 
    $pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); 
+1

父函數的變量(如'$ header')不在作用域中,除非用'parent ::'調用它,否則不能訪問它們。你可以訪問對象本身的公共和受保護的變量,所以'$ this-> whateveryouneed'。 – Wrikken

回答

1
global $header_content ; 
$header_content = '123123213dd213'; 

class MYPDF extends TCPDF 
{ 
    function __construct() 
    { 
     parent::__construct(); 
    } 

    //Page header 
    public function Header() { 

     global $header_content ; 


     // Set font 
     $this->SetFont('helvetica', '', 10); 

     $this->Cell(0, 15, $header_content , 0, false, 'L', 0, '', 0, false, 'M', 'M'); 
    } 


} 

很大程度上得益於Merianos尼科斯的回答在How to make variable global across entire class

氏工作很好。但是這是否正確嗎?