ich habe folgendes Problem:
Soweit ich es richtig verstanden habe, wird die Funktion __autoload($lcass) immer automatisch aufgerufen, wenn eine Klasse vorher nicht definiert wurde.
Nun habe ich eine Klasse mit einer statischen Funktion. Wenn ich in dieser eine undefinierte Klasse aufrufe wird die Funktion __autload() nicht ausgelöst.
Wenn ich die __autoload-Funktion mit spl_autoload_register() definiere, dann tut es, aber das wollte ich eigentlich nicht bei jeder statischen Funktion machen.
Gibt es dazu eine Lösung? Oder funktioniert die __autoload()-Funktion bei statischen Funktionen nicht?
Kann ich nicht nachvollziehen – __autoload wird aufgerufen, wie an jeder anderen Stelle auch.
Sicher, dass es nicht an deiner __autoload-Funktion liegt? Lass dir darin mal den Namen der Klasse ausgeben.[/quote]
Genau das ist mein Problem. __autoload wird anscheinend nicht aufgerufen. Ich habe es probiert den Namen der Klasse auszugeben, aber es passiert nichts.
Hier mal meine Datei:
class Foo {
public function __autoload($class) {
echo $class;
}
public static function bar() {
$test = new Class();
}
Aufgerufen wird das ganze mit:
Ich sehe keine Ausgabe ‘Class’, sondern nur einen Fehler:
__autoload muss eine globale Funktion sein, keine Methode einer Klasse.[/quote]
Achso. Gut, das erklärt dann natürlich alles. Ich dachte, dass es eine Funktion innerhalb einer Klasse wäre.
Dann ist die Frage hiermit geklärt. Danke.