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
Susan SarandonOriginal
2024-12-14 20:17:26108Durchsuche

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);

Verwenden Sie:

$pageInstance = new Page();
$pageInstance->getInstanceByName($page);

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
    }

}

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

Page::getInstanceByName($page);

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!

Stellungnahme:
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