Ich habe eine messageService
Klasse, die ich wie folgt instanziieren:Wie kann ich eine andere Klasse in meiner PHP 5.6 __autoload() Deklaration verwenden?
require_once("./classes/messageService.class.php");
$messageService = new messageService();
DANN
Ich möchte in meiner __autoload
Methode, um das $messageService
Objekt verwenden, die wie folgt aussieht:
function __autoload($className) {
$fileName = "./classes/" . $className . ".class.php";
require_once($fileName);
$messageService->logNotice("Loaded File: " . $filename);
}
Aber
Wenn ich den Code ausführen, bekomme ich:
Notice: Undefined variable: messageService iin /var/www/html/beta.gmtools/api/index.php on line 17
Fatal error: Call to a member function logNotice() on null in /var/www/html/beta.gmtools/api/index.php on line 17
Was ich nehme ist, weil $messageService
nicht im Geltungsbereich ist?
Wie kann ich dieses Problem lösen?
Wenn ich '$ messageService = new messageService() ändern;' zu 'global $ messageService = new messageService();' Der Server löst einen Fehler von 500 aus. –
Der Fehler bedeutet, dass Ihr '$ messageService' nicht mehr als Objekt definiert ist. Wahrscheinlich haben Sie mit Ihrem variablen Bereich etwas falsch gemacht.Einige Dokumentation: [Variablenbereich] (http://php.net/manual/en/language.variables.scope.php) – Nytrix