Klasse mit 2 Funktionen: Variable aus 1.Funktion in 2. Funktion verfügbar machen

querytail

Erfahrenes Mitglied
Hallo zusammen,

ich habe 2 Funktionen in einer Klasse und möchte eine Variable übergeben:

Code:
class fdft extends PDF {

	protected $_pdfurl;

public function getPdfUrl( $pdfurl )
    {
	$pdfs = new SplFileInfo($pdfurl);
	$this->_pdfurl = $pdfs->getBasename();
    }

Die Variable $pdfurl wird über eine neue Instanz der 1. Funktion zugewiesen. Mit echo $this->_pdfurl; wird mir auch ein Wert angezeigt, d.h. das funktioniert.

Eigentlich müsste ich doch in der 2. Funktion mit $this->_pdfurl auf die Variable zugreifen können, oder habe ich da einen Denkfehler?

Grüße & Danke

querytail
 
Das ging ja fix. Da gibt`s eigentlich nicht viel mehr. In der Funktion __contruct soll/muss die Variable verfügbar sein

Code:
class fdft extends PDF {
 
    protected $_pdfurl;


function __construct($params = null) {
		
	//error_reporting(E_ALL);
	$pdfx =  $this->_pdfurl;
	echo 'XX'.$this->_pdfurl;
	if ($pdfx != '') {	
	setlocale(LC_TIME, "de_DE");
	$timestamp = time();
	 
	$pdf =& new FPDF(); 
	
        ...Ausgabe PDF...
    }
}

public function getPdfUrl( $pdfurl )
    {
    $pdfs = new SplFileInfo($pdfurl);
    $this->_pdfurl = $pdfs->getBasename();
   


   }
}
 
Zuletzt bearbeitet:
Der Konstruktor wird auf jeden Fall vor getPdfUrl() aufgerufen, daher hast du da keinen Wert in $this->_pdfurl. Denn..

PHP:
$obj = new fdft(); // <- ruft __construct auf
$obj->getPdfUrl($someUrl); // <- hat keine Auswirkungen mehr auf __construct

Entweder lagerst du die Verarbeitung aus oder übergibst die Url bereits dem Konstruktor. Auf jeden Fall muss $this->_pdfurl vor der Verarbeitung gesetzt sein. ;)
 
Wie wärs mit einem weiteren Parameter?

PHP:
public function __construct($url, $params = null) {
    $this->getPdfUrl($url);

Übrigens würde ich die Methode eher setPdfUrl() nennen, da "get" suggeriert, dass man etwas bekommt.
 
Zurück