object funktion über variable ansprechen

südpol

Erfahrenes Mitglied
Hi,

ich verwende ADODB als Datenbank abstraktions layer. Bei einem recht komplexen Projekt wollte ich mir nun sehr viel Arbeit durch eine generische Funktion ersparen. In dem Zusammenhang müsste ich jedoch folgendes Ausführen können:
Code:
$FeedMatching['Full_Match'][] = $res->$this->WM_FeedTables[$value]['FeedTablePK'];

Nur zur Info $res wird in eine while Schleife gefüllt (while($res = $recordSet->FetchNextObject()))

Das Array $this->WM_FeedTables[$value]['FeedTablePK'] würde in dem Beispiel z. B. ID zurück geben. Sprich ich will $res->ID abfragen.

Kann mir jemand sagen wie ich das hin bekomme? Aktuell bekomme ich immer die Meldung:

Catchable fatal error: Object of class match could not be converted to string in...
 
Also $this geht immer nur innerhalb der Klasse und bezieht sich auf die aktuelle Instanz.

Aber vielleicht hilft Dir ein Beispiel was ich in einer meiner Klassen nutze:
PHP:
public function fetch_array($type='BOTH')
{
	$function='fetch_array_'.$this->type;
	return $this->{$function}(constant(strtoupper($this->type).'_'.strtoupper($type)));
}
$this->type ist hierbei natuerlich nicht gleichzusetzen mit der uebergebenen Variable $type sondern ist eine private Variable der Klasse selbst. Darin koennen (zur Zeit) folgende Werte stehen:
  • mysql
  • pgsql
  • mssql
Je nach ausgewaehltem Datenbanktyp wird hier auf die entsprechende Funktion verzweigt. So ist dann sichergestellt, dass ich ausserhalb der Klasse mit generischen Funktionen arbeiten kann ohne auf die Eigenheiten der unterschiedlichen Datenbankfunktionen Ruecksicht nehmen zu muessen.

Vielleicht hilft Dir der gezeigte Code ja, in Form eines Denkanstosses, etwas weiter.
 
Hi,

danke die geschweiften Klammern waren genau der richitge Tipp. Jetzt funktioniert alles so wie ich mir das vorgestellt habe.

DANKE!
 
Zurück