PHP: Objektorientierte Programmierung

Das Schlüsselwort static

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Das Schlüsselwort static sorgt bei Eigenschaften und Methoden dafür, dass die Wertzuweisung bereits auf Klassenebene erfolgt.
06:56

Transkript

Wie Sie sehen können habe ich meiner Klasse Dog eine neue Eigenschaft spendiert. Diese Eigenschaft beschreibt die drei unterschiedlichen Größen, die Hunde haben können, und die den Hunden dann auch zugeordnet werden können. Und - diese Eigenschaft ist mit dem Schlüsselwort static versehen. Das Schlüsselwort static kommt im Zusammenhang mit Eigenschaften und auch mit Methoden vor und sorgt dafür, dass diese Methoden und Eigenschaften, eine etwas stabilere Grundstruktur bekommen, wenn Sie so wollen. Das Hervorstechendste dabei ist wahrscheinlich, dass im Fall von static Werte bereits auf Klassenebene zugewiesen werden. Wie Sie hier sehen können, oder auch hier unten, habe ich einen Hundenamen, der mit static gesetzt ist, und dem auch dann gleich ein Wert zugewiesen wurde. Static ist also als Schlüsselwort dazu da, um Beschränkungen herbeizuführen, nämlich Beschränkungen bei der Möglichkeit des Instanziierens, weil die Werte ja bereits vergeben wurden. Das hat dann auch zur Folge, dass anders darauf zugegriffen werden muss. Und im Falle unserer Eigenschaft können wir uns erst einmal anschauen, wie wird eine Eigenschaft static - indem ich eben das Schlüsselwort setze, aber in welcher Reihenfolge ich es dann vor meinen Namen, meine Eigenschaft stelle, das bleibt mir überlassen. Es ist nur so, dass Sie vielleicht immer darauf achten sollten, dass Sie die Reihenfolgen in dem Sinne gleich halten, damit Sie später sich nicht mit sich selbst verwirren sozusagen. Jetzt habe ich hier stehen static public und dann den Eigenschaftennamen - public müsste ich eigentlich gar nicht verwenden, wähle eine Eigenschaft die static ist, auch gleichzeitig public ist, weil ich ohne Instanziierung darauf zugreifen kann, und darauf zugreifen können muss. Gut! Ich möchte mir jetzt in meinem Dokument, in dem ich alles herrichte, um mir die Daten ausgeben zu lassen, gerne mir anschauen, ob mein Array jetzt auch tatsächlich ausgegeben wird. Analog zu den früheren, hier verwendeten var_export-Befehlen habe ich hier wieder einen var_export-Befehl, dieses mal aber nur bezogen auf mein Array. Und ich habe es gestaltet, wie man es üblicherweise gestalten würde, ich habe den Objektnamen verwendet, und dann damit auf den Eigenschaftsnamen verwiesen. Mit Strg+S speichere ich jetzt mal hier das Ergebnis, und öffne jetzt meinen Browser, um mir mein Ergebnis ausgeben zu lassen. Ich sorge für ein Neuladen der Seite, und was ich bekomme ist hier eine Fehlermeldung, und das liegt daran, dass ich eben auf eine Eigenschaft die mit static gekennzeichnet ist, nicht so ohne Weiteres zugreifen kann, zumindest nicht auf die übliche Art und Weise. Ich kann aber ziemlich rasch eine Veränderung herbeiführen, indem ich hier einfach mich von dem Objekt selbst trenne, weil mit dem Objekt hat das jetzt dann gar nichts mehr zu tun, sondern ich gebe den Klassennamen selbst an, ich arbeite hier dann nämlich direkt mit dem Klassennamen, dem Gültigkeitsbereichsoperator, und muss dann meine Eigenschaft tatsächlich wieder auch mit dem Dollarzeichen versehen angeben. Und mit diesen Veränderungen - wenn ich das jetzt abspeichere - sollte ich meinen Array korrekt ausgegeben bekommen. Und so ist es auch. Das heißt, auf eine Eigenschaft, die auf static gesetzt wird, kann ich direkt zugreifen, muss ich sogar direkt zugreifen, und kann das nicht innerhalb eines Objektes machen. Ich dafür auch von mehreren Stellen darauf zugreifen. Und was für Eigenschaften funktioniert, funktioniert auch bei Methoden. Ich habe hier, wie gesagt, einen Hundenamen bereits auf static gesetzt, und ihm den Namen "Bello" zugewiesen, und hier unten habe ich eine Methode vorbereitet mit der ich Ihnen demonstrieren möchte, wie das nun innerhalb von Methoden funktioniert, wenn ich das Schlüsselwort static setze. Auch hier ist es so, bei einer Methode, dass die Methode jetzt, etwas aus dem üblichen Rahmen herausfällt, denn die Methode kann jetzt nicht einfach mit $this auf die Werte von den Eigenschaften, von den anderen Eigenschaften zugreifen, einfach darum, weil diese Werte ja erst bei der Instanziierung zugewiesen werden. Und - ja, wir liegen ja hier außerhalb der Möglichkeit des Instanziierens, das heißt, wenn ich eine statische Funktion habe, dann kann sie auch nur auf statische Werte innerhalb der Klasse zugreifen. Das habe ich jetzt hier auch gemacht, Und der Zugriff erfolgt dann eben nicht über $this, sondern wieder über das Schlüsselwort self, dem Gültigkeitsbereichsoperator und dem Namen der Eigenschaft, die ich wiedergeben möchte, und alles zusammen sollte eine Ausgabe hervorrufen die: "Hello world from Bello" heißt. So, jetzt muss ich eigentlich nur noch speichern und mir dann, die Funktion ausgeben lassen. Ich schreibe also: echo $dog- helloWorld() ; Strichpunkt, speichere das und lasse mir das Ganze in meinem Browser ausgeben. Dazu muss ich hier die Seite neu laden, und - es hat funktioniert, ich bekomme hier den Wert meiner statischen Methode ausgegeben, und konnte dann auch problemlos über das Objekt draufzugreifen. Allerdings ist es bei den statischen Methoden so, dass sie nicht verändert werden können. Wenn also immer ich vorhabe, Werte stabil und unveränderlich halten zu wollen, dann ist das Schlüsselwort static genau das, was ich dafür verwenden sollte.

PHP: Objektorientierte Programmierung

Lernen Sie alle Aspekte kennen, die bei der Umsetzung des OOP-Programmierstils in PHP eine Rolle spielen.

2 Std. 32 min (34 Videos)
Derzeit sind keine Feedbacks vorhanden...
Software:
Exklusiv für Abo-Kunden
Ihr(e) Trainer:
Erscheinungsdatum:23.09.2016
Laufzeit:2 Std. 32 min (34 Videos)

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!