• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem: Statischer Klassenaufruf

henrique

Neues Mitglied
Hallo,
ich hoffe, dass mir hier jemand helfen kann. Es geht um folgende Fehlermeldung:

PHP:
Strict Standards: Non-static method I::gI() should not be called statically, assuming $this from incompatible context in /Applications/XAMPP/xamppfiles/htdocs/root/project/c_kernel.php on line 49

Meine Struktur ist wie folgt:
Ich habe eine Datei c_instance.php die eine Klasse I enthält, die alle Klassen-Dateien aus dem Ordner /classes aufruft und eine Instanz "in sich" speichert.
Das sieht dann so aus:

PHP:
if (!isset(self::$instances[$instance])) {
   include ('./classes/' . $file);
   self::$instances[$instance] = new $instance;
   ++self::$classes;
}

Die Klasse I besitzt eine Mehtode gI($class), die die Klasse $class zurückgibt:

PHP:
PUBLIC function gI($instance) {
   return self :: $instances[$instance];
}

in anderen Klassen kann ich nun jede beliebige Klassenmethode über
PHP:
I :: gI('Klasse')->Methode();
aufrufen, zB
PHP:
I :: gI('Format')->textFormat('Hallo Welt', 'standard_format');

Mein Problem ist nun, dass mir das lauter Fehler erzeugt, wenn ich die nicht komplett abschalte. Ich weiß aber im Moment nicht, wie ich es eleganter lösen könnte.
Ich würde gerne ein Objekt der Klasse I bilden, das in allen Klassen bekannt ist. Aber mir fällt nicht ein, wie ich das machen könnte, ohne es global zu lösen. Oder ist eine Lösung à la $GLOBAL noch elegant?

Liebe Grüße
 
Okay, vielen Dank für deine Hilfe. Ich habe gerade in der Referenz nachgeschaut und gemerkt, dass ich 'static' völlig falsch verwendet habe.
 
Zurück
Oben