Zum Inhalt springen

Aufruf einer Funktion durch einer Funktion in einer Klasse

Erstellt am 29. Mai 2007 · 2 Antworten · letzte Antwort am 31. Mai 2007

Tags: Frage

dirk01 ·

In einer Klasse soll eine Funktion eine weitere Funktion aufrufen. Ich erhalte die Fehlermeldung: "Call to undefinded function: addcreateoptions()".

Die Frage stelle ich in Zusammenhang mit: #63030

class tx_productfinder_pi1 extends tslib_pibase {

	...
		
	function main($content,$conf) {
	...
	}
	
	function addTransports($selectId, $mode) {
	...
	$objResponse->addCreateOptions($selectId, $data);
	}
	
	function addCreateOptions($sSelectId, $options) {
	...
	}
}

Gruß,
Dirk

NickD ·

es kommt drauf an, wo sich deine funktion bemfindet.
ist diese in der selben klasse, wie die funktion, welche sie aufrufen soll, dann wird diese über $this angesprochen (beispiel: $this->meineFunktion() ).
ist die funktion in einer anderen klasse, musst du erst ein objekt erstellen:

$meinObj = new Klassenname();

natürlich muss dann diese php-datei, mit der jeweiligen klasse eingebunden werden (beispiel: require_once('/pfad/meineDatei.php'); ).

dann ist die funktion über das objekt ansprechbar:

$meinObj->meineFunktion();

dieses objekt, ist aber nur in jeder funktion in einer klasse bekannt, wenn du als speicherort eine klassenvariabel nutzt. das heißt direkt unter der klasse:

var $meinObj = ""; //variabel ist nun deklariert.

dann in einer funktion:

$this->meinObj = new Klassenname();

dann sprichst du funktionen so an:

$this->meinObj->meineFunktion();

ich hoffe es hilft!

p.s.: es würde helfen, würdest du ein wenig mehr code sichtbar machen und die ausgangslage genauer erklären.

lg, nick

dirk01 ·

Hallo Nick,

vielen Dank für Deine erläuternde Antwort!

Hier: #63030

habe ich ebenfalls geschrieben und auch schon eine weiterhelfende Antwort bekommen. Der letzte Hinweis fehlt mir aber noch.
Und zwar der Aufruf der Funktion addScript() in addCreateOptions().

lg,
Dirk