Wie behebt man den PHP-Fehler „Strenge Standards: Nicht-statische Methode sollte nicht statisch aufgerufen werden'?

DDD
Freigeben: 2024-11-27 05:32:10
Original
900 Leute haben es durchsucht

How to Fix the

Behebung des Fehlers „Strenge Standards: Nicht-statische Methode sollte nicht statisch aufgerufen werden“ in PHP

Die Fehlermeldung „Strenge Standards: Nicht-statische Methode sollte nicht aufgerufen werden.“ „Statisch aufgerufen“ tritt auf, wenn über einen statischen Aufruf auf eine nicht statische Methode zugegriffen wird. Um diesen Fehler zu beheben, werden wir den Code ändern, um sicherzustellen, dass alle Methoden als statisch deklariert werden, wenn sie statisch aufgerufen werden sollen.

Im bereitgestellten Code werden die Methoden in der Page-Klasse nicht als statisch deklariert, sondern Sie werden als statisch bezeichnet. Um dieses Problem zu lösen, müssen wir den Methodendeklarationen das Schlüsselwort static hinzufügen.

Page.php ändern

class Page{
    // ...
    public static function getInstanceByName($name=''){
        // ...
    }
    // ...
}
Nach dem Login kopieren

Indem wir diese Methoden statisch machen, können sie dies tun Der Zugriff erfolgt über den Klassennamen, wie in der Datei index.php zu sehen:

// ...
if($page){ // load by name
    $r = Page::getInstanceByName($page);
    if($r && isset($r->id)) $id = $r->id;
}
// ...
Nach dem Login kopieren

Zusätzlich Hinweise

  • Statische Methoden und Singleton-Muster können Unit-Tests behindern.
  • Konstrukteure sollten sich in erster Linie darauf konzentrieren, das Objekt in einen gültigen Zustand zu versetzen, anstatt umfangreiche Abfragen durchzuführen.
  • Konstruktoren können keine Werte zurückgeben; sie kommen immer leer zurück.

Das obige ist der detaillierte Inhalt vonWie behebt man den PHP-Fehler „Strenge Standards: Nicht-statische Methode sollte nicht statisch aufgerufen werden'?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage