Heim > Backend-Entwicklung > PHP-Tutorial > Wie behebe ich den PHP-Fehler „Nicht-statischer Methodenaufruf statisch'?

Wie behebe ich den PHP-Fehler „Nicht-statischer Methodenaufruf statisch'?

Susan Sarandon
Freigeben: 2024-12-14 20:17:26
Original
108 Leute haben es durchsucht

How to Fix the PHP

Fehler: Nicht-statischer Methodenaufruf statisch

Beim Versuch, auf eine nicht-statische Methode als statische Funktion zuzugreifen, generiert PHP die Fehlermeldung Strenge Standards: Nicht- Die statische Methode sollte nicht statisch aufgerufen werden. Dieses Problem tritt häufig auf, wenn eine Klassenmethode verwendet wird, ohne zuvor ein Objekt der Klasse zu instanziieren.

Lösung:

1. Klassenobjekt angeben:
Um dieses Problem zu lösen, müssen Sie eine Instanz der Klasse erstellen, bevor Sie versuchen, ihre Methoden aufzurufen. Zum Beispiel anstelle von:

Page::getInstanceByName($page);
Nach dem Login kopieren
Nach dem Login kopieren

Verwenden Sie:

$pageInstance = new Page();
$pageInstance->getInstanceByName($page);
Nach dem Login kopieren

2. Methode als statisch markieren:
Wenn Sie beabsichtigen, eine Methode aufzurufen, ohne die Klasse zu instanziieren, können Sie die Methode innerhalb der Klasse als statisch definieren. Zum Beispiel:

class Page {

    public static function getInstanceByName($name) {
        // method implementation
    }

}
Nach dem Login kopieren

Dadurch können Sie die Methode direkt über den Klassennamen aufrufen:

Page::getInstanceByName($page);
Nach dem Login kopieren
Nach dem Login kopieren

Zusätzliche Überlegungen:

1. Testbarkeit:
Beachten Sie, dass statische Methoden und Singletons die Testbarkeit beeinträchtigen können. Möglicherweise möchten Sie alternative Entwurfsmuster in Betracht ziehen, um die Testfunktionen zu verbessern.

2. Konstruktoroptimierung:
Vermeiden Sie die Platzierung übermäßiger Aufgaben im Konstruktor. Der Konstruktor sollte nur das Versetzen des Objekts in einen gültigen Zustand übernehmen. Erwägen Sie das Einfügen von Datenabhängigkeiten, anstatt sie direkt vom Konstruktor abzurufen. Denken Sie daran, dass Konstruktoren keine Werte zurückgeben können und immer void zurückgeben.

Das obige ist der detaillierte Inhalt vonWie behebe ich den PHP-Fehler „Nicht-statischer Methodenaufruf statisch'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage