Zur Zeit aufgerufen werden eine große Plattform in PHPWie kann ich „Nicht-statische Methode xxx lösen: xxx() sollte nicht statisch in PHP 5.4
Der Server es gehostet wurde kürzlich auf PHP 5.4 aufgerüstet. .
Da ich viele Fehlermeldungen wie vollständig erhalten haben:
[Sa 26. Mai 2012 19.04.41] [Fehler] PHP strenge Standards: Nicht-statische Methode Config :: getData() sollte nicht statisch aufgerufen werden, angenommen $ inkompatibler Kontext in /xxx/Config.inc.php in Zeile 35
Das beispielhafte Verfahren ist wie folgt definiert (das Fehlen eines ‚statischen‘ Schlüsselwort beachten):
function &getData() {
$configData =& Registry::get('configData', true, null);
if ($configData === null) {
// Load configuration data only once per request, implicitly
// sets config data by ref in the registry.
$configData = Config::reloadData();
}
return $configData;
}
Dies hat keine Probleme verursacht vor, und ich nehme an, die Fehlermeldungen (die die Anwendung zum Absturz bringen) könnte mit dem kürzlich erfolgten Upgrade auf PHP5.4 zusammenhängen.
Gibt es eine PHP-Einstellung, die ich modifizieren kann, um das Fehlen eines statischen Schlüsselwortes zu "ignorieren"?
Erstellen Sie eine Instanz von Config und rufen Sie getData() daraus – Musa
Könnten Sie ein Beispiel für den Inhalt von '& getData()' einschließen? Genauer gesagt, was genau zurückgegeben wird und wie. –
Der Inhalt von & getData() wurde zur ursprünglichen Frage hinzugefügt - ich muss jedoch betonen, dass dieser Fehler erst seit dem Upgrade auf 5.4 aufgetreten ist, also bin ich zuversichtlich, dass die Logik in Ordnung ist – kaese