2017-09-22 3 views
0

Fange an, die wirkliche Nützlichkeit für Klassen und Methoden (Objektorientierte Programmierung) in PHP zu fühlen. Allerdings fehlt mir immer noch das Verständnis und die Erfahrung, Methoden und Variablen richtig zu deklarieren.I In welchen Fällen deklariere ich statische Methoden/Variablen in PHP?

In welchen Fällen soll ich eine Methode/Variable Static VS deklarieren, die sie als nicht statisch deklariert? Welche Fragen stelle ich mir, um diese Frage zu beantworten?

+0

Haben Sie überhaupt eine Recherche durchgeführt? Ein guter Anfang wäre die Suche nach etwas wie _ "Wann sollte ich statische Methoden in PHP verwenden" _. Erster Treffer war ein SO-Post: https://stackoverflow.com/questions/33705976/when-should-i-use-static-methods –

+0

@MagnusEriksson Ich habe! In gewissem Sinne sehe ich jedoch den Unterschied, dass Sie beispielsweise die statische Methode direkt aufrufen können, ohne eine Instanz zu erstellen. Aber nur um eine Codezeile zu speichern? '$ myClass = new myClass(); $ myClass-> method(); 'vs nur Aufruf der Methode' myClass :: method() '' – OnklMaps

+0

Nein, es ist nicht nur das. Es gibt viele Unterschiede, genau wie der Post, mit dem ich verlinkt habe. –

Antwort

1

Statisch bedeutet, dass Sie auf die Funktionen zugreifen können, ohne zuvor eine Instanz der Klasse erstellt zu haben. Dies macht es sehr wie eine normale Funktion. Sie neigen dazu, Funktionen statisch zu machen, wenn Sie Funktionen gruppieren möchten, die verwandt sind, aber keine bestimmte Instanz der Klasse ausführen müssen.

Nicht statische Mitglieder benötigen eine Instanz der Klasse. Normalerweise werden Sie dies verwenden.

Wenn wir eine Klasse Kreis haben und es Funktionsbereich() hat, dann wäre es nicht statisch, da es einen bestimmten Kreis benötigt, um den Bereich von zu finden. Stellen Sie sich vor, wir haben eine PrintText-Klasse mit einer printBold() - Funktion. Wir brauchen keine Instanz, da es nur von den Eingaben abhängt. Es ist jedoch praktisch, die PrintText-Klasse zu verwenden, da wir printBold(), printItalics() usw. haben könnten.

Verwandte Themen