Entwickler-Ecke
Programmiersprachen (Server) - [PHP5]Autoload auf Klasse zugreifen lassen
Heiko - So 24.06.07 17:42
Titel: [PHP5]Autoload auf Klasse zugreifen lassen
Hallo,
ich habe in "kleines" Problem. Und zwar nutze ich zur Vereinfachung (bessere Übersichtligkeit beim schreiben) __autoload. Das funktioniert auch schön. Jetzt habe ich jedoch die Konfigurationen aus $GLOBALS herausgenommen und in eine extra Klasse gepackt. Aber autoload will die Klasse nicht. Er sagt mir, dass sie nicht existiert, obwohl sie vorhanden ist:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| //Konfigurationen einbinden require_once("class/config.class.php");
//Konfigurationen laden if (!isset($conf)) $conf = new Config();
// Hauptklasse initieren if (!isset($main)) $main = new Main();
//echo "Parsetime: " . $main->parseTime() . "s";
//autoload function __autoload($class) { $conf->loadClass($class); } |
Hier wird autoload erst beim erzeugen von Main aufgerufen, also nachdem bereits conf erzeugt wurde. Hat einer von euch Ahnung, woran das hier scheitert? Denn autoload ist nur ein Beispiel wo es nicht klappt. Wenn ene SubKlasse von Main auf die configs zugreifen muss, schlägt das auch fehl - aus dem gleichen Grund. Wenn ich aber vor dem erzeugen von Main folgendes einfüge:
Quelltext
1:
| $conf->loadClass('Main'); |
funktioniert das erzeugen von Main. Wenn ich es so habe wie unten aber nicht...
Grüße
Heiko
Christian S. - So 24.06.07 18:05
Fehlt da nicht ein global $conf; in der AutoLoad-Funktion?
Heiko - So 24.06.07 18:16
global geht bezüglich OOP scheinbar nicht:
Quelltext
1: 2: 3: 4:
| function __autoload($class) { global $conf->loadClass($class); } |
:arrow:
Zitat: |
Parse error: syntax error, unexpected T_OBJECT_OPERATOR, expecting ',' or ';' in ... |
Christian S. - So 24.06.07 18:18
Die Syntax von global sieht so aus:
Quelltext
1: 2: 3: 4: 5:
| function __autoload($class) { global $conf; $conf->loadClass($class); } |
Heiko - So 24.06.07 18:22
:autsch: thx
Heiko - Di 03.07.07 19:46
Also PHP ist echt seltsam. Jetzt funktioniert es auch ohne global :gruebel:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!