ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
506
506
EMPFEHLEN
-
Hallo!
Puh, der Titel klingt vielleicht etwas verwirrend deshalb erläutere ich mein Problem mal genauer.
Ich habe eine Klasse, nennen wir sie ModuleLoader.
Diese Klasse besitzt eine Methode namens _load(), der man als Parameter den Namen eines Moduls übergibt.
Als Beispielmodul nehmen wir nun mal die Klasse FooBar, die nach dem Singleton-Pattern aufgebaut ist und eine Funktion namens getInstance() um eine Instanz zu bekommen besitzt.
Der Funktionsaufruf lautet folgedessen _load('FooBar').
Diese Funktion sucht dann nach der Datei und bindet diese ein und versucht anschließend eine Instanz zu bekommen.
Der Aufruf sieht dann so aus:Ich weiß nicht wie ich die Funktion der Klasse aufrufen soll, denn so wie ich es probiert habe, lieferte mir PHP immer folgenden Fehler:PHP-Code:public function _load($moduleName) {
// ... require_once() etc...
return $moduleName::getInstance(); // Hier scheitert das ganze!
}
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM ....
Was soll ich tun? Wie soll ich die Methode sonst aufrufen?
Ich hoffe ihr versteht mein Anliegen und könnt mir unter die Arme greifen.
greetz
daddzbe inspired...simplify...
-
Da ich demnächst selber vor dem Problem stehe, habe ich gleich mal einen Testfall gebaut:
Mit call_user_func() funktioniert es, aber einfachere Schreibweisen sind willkommen.PHP-Code:<?php
class TestSingleton {
private static $instance = null;
private $createTime = null;
private function __construct() {
$this->createTime = time();
}
public static function getInstance() {
if (self :: $instance == null) {
self :: $instance = new TestSingleton();
}
return self :: $instance;
}
public function echoCreationTime() {
echo date('Y-m-d H:i:s');
}
}
$className = 'TestSingleton';
call_user_func(array ($className, 'getInstance'))->echoCreationTime();
?>
Gruß hpvwWarum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.
-
Oh, danke.
Zumindest kann ich mit diesem call_user_func-"work-around" vorankommen.
Falls jemand eine andere bzw. elegantere Lösung weiß, her damit.
Schließlich gibt es nun schon 2 Interessenten!
greetz
daddzbe inspired...simplify...
Ähnliche Themen
-
Instanz einer Klasse in anderer Klasse verwenden
Von Lunatic im Forum PHPAntworten: 7Letzter Beitrag: 24.05.10, 14:19 -
Innerhalb einer Klasse eine Instanz einer anderen Klasse
Von HackerNeo im Forum VisualStudio & MFCAntworten: 1Letzter Beitrag: 17.11.09, 13:08 -
Instanz einer Klasse über deren Namen erzeugen
Von Marcel G im Forum PHPAntworten: 3Letzter Beitrag: 18.12.07, 15:38 -
Singleton-Pattern für (Hibernate)DAO?
Von janw im Forum JavaAntworten: 1Letzter Beitrag: 31.08.06, 10:24 -
sql handle als instanz einer klasse per konstruktor
Von Transmitter im Forum PHPAntworten: 4Letzter Beitrag: 28.10.02, 00:47





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren