Wann sollte der statische Modifikator in PHP verwendet werden?
Tun einige code-reviews in letzter Zeit stieß ich auf eine Reihe von Klassen, die erhebliche Anzahl von statischen Methoden in Ihnen... und ich kann nicht scheinen zu verstehen, warum? Daher meine Frage:
Was sind die besten Praktiken in Bezug auf die Verwendung von statischen Methoden in PHP?
Wann sollte man diese verwenden wollen und Wann würde man sollte Sie nicht benutzen?
Welche spezifischen Unterschied, wie Laufzeit behandelt statische Methoden? Haben Sie Einfluss auf performance oder Speicherbedarf?
InformationsquelleAutor der Frage Alex N. | 2009-08-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
PHP hat keine namespaces vor 5.3, so dass Sie alle Funktionen/Variablen wäre im globalen Gültigkeitsbereich, es sei denn, Sie gehörten in Klasse. Setzen Sie in einer Klasse als statische Mitglieder ist ein workaround für die nicht-namespaces (und das ist wahrscheinlich der Grund, warum Sie sah Sie in "erheblicher Zahl")
In der Regel werden Sie verwendet für Funktionen, die nicht sehr nützlich, in den einzelnen Objekten, hat aber einige verwenden auf Klassenebene (wie gesagt in anderen Antworten)
InformationsquelleAutor der Antwort Imran
Statische Methoden werden verwendet,
InformationsquelleAutor der Antwort Zed
Ist die beste Methode zu vermeiden, verwenden Sie Sie, Wann immer möglich, weil Sie töten, Testbarkeit und Wartbarkeit. Zwei große liest, dass aufwendige:
KLARSTELLUNG: Es scheint viele Missverständnisse zu diesem Thema. Fehlende dependency injection ist das eigentliche problem. Direkt aufrufen von statischen Methoden, die nur zufällig die eine der häufigsten Arten von fallen in die Falle.
InformationsquelleAutor der Antwort Russell Davis
Statische Methode keine Instanz (und zurückgeben kann man statt) und ist mehr oder weniger wie eine Globale Funktion, außer, es ist put-in-class' - namespace (und damit Vermeidung von Kollisionen mit anderen Funktionen) und hat Zugriff auf die Klasse " private Mitglieder.
Dem So ist, verwenden Sie es, Wann immer Sie interessiert sind, diese Eigenschaften von der Funktion.
InformationsquelleAutor der Antwort Michael Krelin - hacker
Es ist nichts PHP-spezifisch, über die Verwendung der statischen Methoden.
Statische Methoden können direkt aufgerufen werden, die auf die Klasse - keine Notwendigkeit für eine instanziierte Objekt.
So Ihre hauptsächliche Verwendung ist für Methoden, die mit den Klassen-Funktionalität, müssen jedoch nicht eine vorhandene Instanz zu sein für anderen code.
Ein typisches Beispiel wäre ein custom-Vergleich-Methode übergeben werden kann, um, sagen wir, die uasort() Funktion sortiert ein array von Objekten der Klasse " Typ.
InformationsquelleAutor der Antwort Henrik Opel
können Sie statische Methoden für eine bessere Leistung.
Sie brauchen nicht zum erstellen von Objekten für jeden Benutzer, der über Ihre web-App und erstellen Objekt mit mehreren Methoden und Eigenschaften ist langsamer und braucht mehr Systemressourcen.
InformationsquelleAutor der Antwort Jquest
Brauchen Sie nicht zu erstellen Sie eine Instanz der Klasse, die statische Methoden.
InformationsquelleAutor der Antwort Havenard