Eigene Funktion will nicht mit php4

hallo ich weiß es ist irgendein dummer Fehler aber ich find ihn einfach nciht :frowning:

Ich habe eine Klasse…

$pdf =& new FPDI();

…auf deren funktionen/methoden kann ich ohne probs zugreifen.

$pdf->SetTextColor(255,0,0,);

Doch wenn ich diese aus einer eigenen funktion aufrufe gehts nciht.

function write2pdf($obj,$font,$colR,$colG,$colB,$X, $Y,$value){
$obj->SetFont($font);
$obj->SetTextColor($colR,$colG,$colB);
$obj->SetXY($X, $Y);
$obj->Write(0, $value);
}

write2pdf($pdf,‚Arial‘,255,0,0, 44,92.5,$Absender);

dies jedoch nur mit php4 mit php5 funtzts super. Jemand nen tipp?

Ich habe eine Klasse…

> $pdf =& new FPDI();




> function write2pdf($obj,$font,$colR,$colG,$colB,$X,$Y,$value){  
> $obj-\>SetFont($font);  
> $obj-\>SetTextColor($colR,$colG,$colB);  
> $obj-\>SetXY($X, $Y);  
> $obj-\>Write(0, $value);  
> }

write2pdf($pdf,‚Arial‘,255,0,0, 44,92.5,$Absender);

dies jedoch nur mit php4 mit php5 funtzts super. Jemand nen
tipp?

von php4 zu php5 wurde das objektmodell geaendert. php4 uebergibt wohl kopien, php5 referenzen oder os aehnlich.
schau mal ob es reicht, die konstruktion zu aendern:
$pdf = new FPDI();

ansonten musst du explizit referenzen uebergeben:

function write2pdf(&$obj,$font,$colR,$colG,$colB,$X,$Y,$value){
}
write2pdf(&$pdf,'Arial',255,0,0, 44,92.5,$Absender);

aber solltest du nicht eigentlich sowas tun:

$pdf = new FPDIWriter();

class FPDIWriter extends FPDI
 {
 function write2pdf($font,$colR,$colG,$colB,$X,$Y,$value)
 {
 $this-\>SetFont($font);
 $this-\>SetTextColor($colR,$colG,$colB);
 $this-\>SetXY($X, $Y);
 $this-\>Write(0, $value);
 }
 }
$pdf-\>write2pdf('Arial',255,0,0, 44,92.5,$Absender);

$pdf = new FPDIWriter();

class FPDIWriter extends FPDI
{
function write2pdf($font,$colR,$colG,$colB,$X,$Y,$value)
{
$this->SetFont($font);
$this->SetTextColor($colR,$colG,$colB);
$this->SetXY($X, $Y);
$this->Write(0, $value);
}
}
$pdf->write2pdf(‚Arial‘,255,0,0, 44,92.5,$Absender);

Ha klasse das funtzt super. Hab im netzt gesucht nach soclhen änderungen jedoch nichts dazu gefunden. :-/
Nach solchen fehlern kann man ja ewig suchen aber wie gut das es soch forengibt.

besten dank dog.je