PHP-Fehler: Nicht-statische Methode wird statisch aufgerufen
Die Fehlermeldung „Strenge Standards: Nicht-statische Methode Page::getInstanceByName()“ sollte nicht statisch aufgerufen werden“ in PHP zeigt an, dass Sie versuchen, eine nicht statische Methode so aufzurufen, als ob dies der Fall wäre static.
Statische Methoden verstehen
Statische Methoden sind Klassenmethoden, die aufgerufen werden können, ohne ein Objekt der Klasse zu instanziieren. Sie werden mit dem Schlüsselwort static deklariert. Statische Methoden werden normalerweise für Dienstprogrammfunktionen oder für den Zugriff auf Klasseneigenschaften verwendet.
Beheben des Fehlers
Im bereitgestellten Code befindet sich die Methode getInstanceByName() in der Page-Klasse nicht als statisch deklariert. Um den Fehler zu beheben, fügen Sie der Methodendeklaration das Schlüsselwort static hinzu:
public static function getInstanceByName($name='') { // Method implementation... }
Nachdem Sie diese Änderung vorgenommen haben, sollten Sie in der Lage sein, getInstanceByName() aufzurufen, ohne den Fehler zu erhalten.
Überlegungen zur Testbarkeit
Auch wenn statische Methoden praktisch sein können, ist es wichtig zu beachten, dass sie Unit-Tests erschweren können. Dies liegt daran, dass statische Methoden nicht an bestimmte Instanzen einer Klasse gebunden sind und daher nicht isoliert verspottet oder einfach getestet werden können.
Abfragen im Konstruktor
Das ist auch der Fall Erwähnenswert ist, dass der Page-Klassenkonstruktor übermäßige Abfragen enthält, die sich auf die Leistung und die Lesbarkeit des Codes auswirken können. Erwägen Sie eine Umgestaltung des Codes, um die Abfrage auf eine separate Methode zu verlagern oder die erforderlichen Daten über die Abhängigkeitsinjektion einzufügen.
Das obige ist der detaillierte Inhalt vonWie behebe ich den PHP-Fehler: „Nicht-statische Methode wird statisch aufgerufen'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!