Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

PHP: Objektorientierte Programmierung

Anonyme Klassen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Anonyme Klassen kommen zum Einsatz, wenn ein Objekt zum einmaligen Gebrauch erzeugt werden soll.
06:35

Transkript

Eine anonyme Klasse kommt dann zum Einsatz, wenn ein Objekt zum einmaligen Gebrauch erzeugt werden soll, zumindest wird das so im PHP-Handbuch beschrieben. Vor PHP 7 sah das dann ungefähr in sehr sehr sehr vereinfachter Form so aus: Ich habe eine Klasse, und diese Klasse hat eine einzelne Methode, die nichts anderes tut, als zum Beispiel eine Nachricht auszugeben, und dann instanziiere ich diese Klasse, und lasse mir diese Methode ausgeben. Das Ergebnis sehen Sie hier auf der rechten Seite in meinem Browser, da wird dann einfach nur das Wort "hallo" ausgegeben. Das Ganze könnte ich natürlich auch noch einen Hauch eleganter lösen, und zwar dank PHP 7. In PHP 7 wurde jetzt eben der Einsatz einer anonymen Klasse eingeführt, und das sieht so aus: Ich erzeuge ein Objekt, und während ich das Objekt erzeuge, erzeuge ich gleichzeitig die neue Klasse, die dabei zum Einsatz kommt. Und was Sie jetzt bei der Klasse hinten in Klammern sehen, ist nicht der Name der Klasse, sondern eben das Argument, dass sie mitbekommen hat Dann sorge ich in klassischer Weise mit einer Konstruktor-Methode für die Ausgabe meines Argumentes, was ich da mitbekommen hatte. Jetzt wissen Sie auch, warum eine anonyme Klasse eine anonyme Klasse ist, sie hat keinen eigenen Namen. Das ist aber schon ziemlich die einzige Einschränkung, denn sonst kann Sie so ziemlich alles das, was andere Klassen auch können. Sie kann auch genauso komplex erzeugt werden, und so komplex umgesetzt werden, Sie können sich einen Riesenaufwand damit antun, ich weiß nur nicht, wie sinnbehaftet das wäre, wenn ich mir vorstelle, dass Sie bei einer anonymen Klasse aufgrund des fehlenden Namens ja nicht mit Vererbung arbeiten können. Stellt sich jetzt die Frage, was dann dieser einfache Einsatz sein könnte, dieses einfache schnelle Argument, was erzeugt werden soll. Und ein Einsatzgebiet, was mir einfällt, ist, wenn ich einen einzelnen Wert überschreiben möchte. Wenn ich eine Eigenschaft mit einem neuen Wert versehen möchte. So, wir wollen uns jetzt aber ansehen, ob das hier auch so funktioniert hat, das heißt, ich speichere mit Strg+S mein neues, zusätzliches Objekt, und lasse mir meine Ansicht erneuern, und dann merken Sie, dass die zweite Version genauso gut funktioniert wie die erste, auch wenn Aptana hier ein bisschen sich querstellt, was daran liegt, dass derzeit, während ich hier aufnehme, in Aptana Studio 3 PHP 7 noch nicht integriert worden ist. Gut, ich habe jetzt hier aber dieses Beispiel, wo es um das Überschreiben eines einzelnen Wertes geht. Ich habe eine Klasse, die heißt HasName, diese Klasse hat zwei Eigenschaften, das eine ist ein Wert, der dann hier mit Hilfe der Konstruktor-Methode später vom Objekt beim Instanziieren erzeugt wird, und das andere ist eine vorgegebene Zeichenkette die dann ebenfalls mit Hilfe dieser zweiten Methode ausgegeben werden soll. Diese zweite Methode sorgt ja dafür, dass meine Eigenschaften hier ausgegeben werden können. Gut, in der klassischen Umsetzung habe ich jetzt hier meine Instanziierung. Und würde ich jetzt nur diesen Wert von myArg überschreiben wollen, dann muss ich die Klasse erweitern. Das heißt, ich erzeuge nur für diese eine Situation eine neue Klasse, erweitere damit meine Ursprungsklasse, überschreibe den ursprünglichen Wert, und muss das Ganze dann neu instanziieren. Und mit Hilfe von anonymen Klassen geht das Ganze jetzt natürlich noch einen Hauch eleganter. Und hier sehen Sie die Umsetzung, ich habe hier sofort meine Instanziierung, und während ich instanziiere erzeuge ich jetzt diese neue Klasse mit dem Argument anonym, welche eine Erweiterung meiner Ursprungsklasse ist, übergebe hier meine neue Eigenschaft, oder den Wert für diese bestehende Eigenschaft, und lasse mir das Ganze mit Hilfe eines echo-Befehls ausgeben. Alle drei Versionen funktionieren. Wenn Sie sich das hier mit mir anschauen wollen, so haben wir zuerst oben mein erstes Objekt mit dem Wert Benannt, und der Rückgabe der Eigenschaft "Ich bin ein Objekt mit einem Namen". Dann haben wir hier die klassische Möglichkeit eines Überschreibens von einem Wert, wobei ich aber eine neue Klasse erzeugen muss, und diese neue Klasse dann auch neu instanziieren muss. Das haben wir hier mit Erweitert, "Ich bin ein erweitertes Objekt", und hier unten jetzt haben wir die anonyme Klasse mit der neuen Ausgabe. Bitte beachten Sie, dass auch hier der Wert Anonym nicht den Namen der Klasse darstellt, sondern eben den Wert, der übergeben wird. Ein Vorteil besteht also darin, dass nun die mit einem eigenen Namen versehene Erweiterung nicht mehr gebraucht wird. Sie wäre normalerweise in irgendeiner include-Datei versteckt, und spätestens, wenn ich versuchen würde, ihr auf die Schliche zu kommen, müsste ich eine ziemliche Suchaktion starten. Ein Vorteil von einer anonymen Klasse ist, dass sie mir direkt beim Instanziieren gut sichtbar zur Verfügung steht, und damit für mehr Klarheit in meiner Programmstruktur sorgen kann. Anonyme Klassen können also verwendet werden, wie jede andere Klasse auch, sie kann Interfaces implementieren und sogar Trades verarbeiten, sie können genauso in andere Klassen eingebettet werden, und das Einzige, was sie nicht mitbringen, ist ein eigener Name.

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
Erscheinungsdatum:23.09.2016

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!