Objektorientierte Programmierung in WordPress Steuerungsstrukturen I

Für diejenigen von Ihnen, die bisher die Serie mitverfolgt haben, wissen Sie, dass wir objektorientierte Programmierung speziell aus der Perspektive eines Anfängers betrachten.

Dies bedeutet, dass wir uns dem Thema nicht nur für diejenigen nähern, die sich mit dem Einstieg in das Paradigma befassen, sondern auch auf die verschiedenen Funktionen von PHP, die die Sprache ausmachen und die letztendlich im Kontext der objektorientierten Programmierung.

Darüber hinaus tun wir dies alles im Kontext von WordPress, so dass wir am Ende der Serie sehen können, wie eine praktische Anwendung, wie all dies in einem realen Beispiel verwendet werden kann.

Wenn Sie zum ersten Mal einen Artikel in der Serie lesen, empfehle ich Ihnen dringend, die vorherigen Artikel auszuchecken, da jeder Artikel dieser Serie auf dem vorhergehenden Artikel aufbaut.

Bisher haben wir folgendes behandelt:

  1. Eine Einleitung
  2. Klassen
  3. Typen

In diesem Artikel werden wir über Kontrollstrukturen sprechen.

Was sind Kontrollstrukturen??

"Kontrollstrukturen" ist ein schicker Begriff, der beschreibt, wie wir das können, Hm, steuern, wie der Code durch unser Programm fließt, basierend auf einer Reihe von Faktoren.

Nehmen wir zum Beispiel an, dass wir bestimmte Anweisungen durchlaufen möchten, aber Sie möchten dies tun etwas, wenn eine Variable gesetzt ist oder ein anderer Satz von Anweisungen einer anderen Variablen gesetzt ist.

Oder nehmen wir an, Sie haben eine Reihe von Daten, die Sie durchlaufen möchten, indem Sie jeden Wert lesen, bestimmte Werte festlegen oder sogar bestimmte Werte erstellen.

In jedem Fall gehen Sie dabei auf Kontrollstrukturen zurück. Im Rest dieses Artikels werden wir zwei Arten von Kontrollstrukturen behandeln: Conditionals und Loops.

Obwohl Bedingungsparameter und Schleifen die Arten von Kontrollstrukturen sind, die wir überprüfen werden, gibt es jeweils Untermengen.

Zum Beispiel haben Bedingungen folgende Bedingungen:

  • wenn, dann Aussagen
  • Schaltergehäuse Aussagen


Loops hingegen haben einige andere Variationen:

  • zum
  • für jeden
  • tun
  • während

Obwohl dies für einige von Ihnen vielleicht neue Konstrukte sind, haben wir bereits die Grundlagen in den vorherigen Artikeln behandelt. Wir haben also alles, was wir brauchen, um voranzukommen.

Bedingte Anweisungen

Meines Erachtens sind Bedingungsanweisungen einige der am leichtesten zu verstehenden, da sie eher wie Sätze als viele andere Arten von Programmieranweisungen gelesen werden. Wenn Sie beispielsweise sagen: "Wenn diese Bedingung zutrifft, führen Sie diese Aktion aus. Andernfalls führen Sie diese Aktion aus."

Sicher, es wird ein wenig komplizierter als das, wenn Sie beispielsweise einige andere Bedingungen prüfen müssen, bevor Sie sich für eine Vorgehensweise entscheiden, aber der Kern davon bleibt derselbe.

Schauen wir uns also zunächst eine der beiden von PHP angebotenen Variationen von Bedingungen an.

wenn, dann Aussagen

Wie bereits erwähnt, hat die grundlegendste Bedingungsanweisung die Form ansonsten, und Sie werden es im Allgemeinen so sehen:

Natürlich erklärt das noch nicht wirklich, wie die Kontrollstruktur funktioniert, oder? Ich meine, sicher, es bietet ein bisschen Skelett, um einen Blick darauf zu werfen, aber es lässt mehr zu wünschen übrig.

Was ist das eigentlich? Bedingung Linie? Zweitens, welche Maßnahmen kann die Kontrollstruktur ergreifen?

Zuerst die Bedingung bezieht sich auf jede Anweisung, die als boolescher Ausdruck ausgewertet werden kann. Sinn ergeben? Einfach gesagt, Bedingung steht für jede Aussage, die als ausgewertet werden kann wahr oder falsch.

Nehmen wir zum Beispiel an, dass wir zwei Werte haben:

  1. $ is_active
  2. $ total_count

Dies sind offensichtlich etwas generische Werte, aber wenn das so ist $ is_active auf true gesetzt ist, dann erhöhen wir das $ total_count einzeln; Andernfalls subtrahieren wir das $ total_count einzeln. 

So kann es im Code aussehen:

Im obigen Beispiel, $ total_count wird um eins erhöht, weil $ is_active wird als wahr ausgewertet.

Alternativ sagen wir mal $ is_active ist eingestellt auf falsch.

Im diese Beispiel, $ total_count wird um eins verringert, weil $ is_active wird als falsch ausgewertet.

Bevor wir uns das nächste Beispiel anschauen, ist es wichtig zu verstehen, dass dies äußerst triviale Beispiele sind. Der Zweck dieser Beispiele besteht nicht darin, zu zeigen, wie komplexe Operationen ausgeführt und in bedingte Konstrukte eingebunden werden können, sondern wie benutzen die bedingten Konstrukte.

Wenn wir zu dem Teil der Serie kommen, bei dem wir mit dem Schreiben eines Plugins beginnen, werden Sie sehen, wie wir in einer praktischen Anwendung ausgefeiltere Ausdrücke verwenden können.

Schauen wir uns nun noch ein paar Beispiele für if / then-Anweisungen an. In diesem Beispiel werden wir einen Blick darauf werfen if / elseif / else. Lassen Sie uns davon ausgehen $ is_active ist auf true gesetzt und $ total_count ist auf 10 eingestellt.

= 10) $ total_count = $ total_count + 1 else $ total_count = $ total_count - 1; 

Der obige Code kann wie folgt gelesen werden:

  • Ob $ is_active auf true gesetzt ist, dann die $ total_count zu einem. $ is_active ist nicht wahr.
  • Ansonsten, wenn die $ total_count ist größer als oder gleich 10, dann erhöhen Sie den Wert $ total_count um 1. Die $ total_count ist gleich 10, also erhöhen wir die $ total_count bis 11.
  • Ob $ total_count war nicht größer als oder gleich 10, dann würden wir die dekrementieren $ total_count einzeln.

Zu dem Zeitpunkt, zu dem der Codeblock im obigen Beispiel ausgeführt wurde, $ total_count wird gleich 11 sein.

Sinn ergeben? 

Deshalb nennen wir diese Kontrollstrukturen: Mithilfe dieser Anweisungen (oder Bewertungen) können wir festlegen, welcher Code basierend auf bestimmten Bedingungen ausgeführt werden soll.

Für diejenigen, die seit einiger Zeit programmieren, sind Sie mit komplexeren Ausdrücken vertraut, die Operatoren wie verwenden && und || und so weiter. Wir werden schließlich darauf eingehen, aber nicht in diesem Artikel.

All das sagt, es ist ein Thema, das ich kenne, und das werden wir behandeln, aber nicht heute.

Noch etwas?

Für diejenigen von Ihnen, die mehr Erfahrung mit der Programmierung haben, sind Sie wahrscheinlich mit dem ternären Operator vertraut.

Wir werden uns das nicht in dieser speziellen Artikelserie ansehen, da es außerhalb des Rahmens dessen liegt, was wir abdecken wollen; Wenn Sie jedoch abenteuerlustig sind und nach einer präziseren Methode suchen, um eine einfache zu schreiben ansonsten Anweisungen, dann checken Sie den ternären Operator im PHP-Handbuch.

Schaltergehäuse Aussagen

Nachdem dies gesagt wurde, gibt es noch eine weitere Art von Bedingungen, die wir uns ansehen müssen, bevor wir zum nächsten Thema übergehen.

Dieses spezielle Konstrukt fällt immer noch unter Bedingungsanweisungen; Ich würde jedoch behaupten, dass Sie es weniger häufig als seine sehen würden ansonsten Gegenstück.

Wie der Titel schon sagt, nennt man das Schaltergehäuse Aussage. Obwohl ich persönlich der Meinung bin, dass die Sprache durch die Sprache etwas komplizierter wird, unterscheidet sich die Art und Weise, in der die Kontrolle durch die Bewertungen fließt, nicht wesentlich von dem, was wir bereits gesehen haben.

Wie wir es mit dem gemacht haben ansonsten Aussagen, schauen wir uns zuerst an, wie die Schaltergehäuse ist strukturiert und dann betrachten wir einige triviale Beispiele.

Das erste, was bei dieser Art von Bedingung zu beachten ist, ist, dass die Auswertung an einem einzigen Ort stattfindet: am oberen Rand des Codeblocks direkt neben dem Schalter Aussage.

Hier erfolgt die Auswertung einmal und dann jedes weitere Fall Aussagen bestimmen, welche Maßnahmen ergriffen werden. Da ist auch ein brechen Anweisung, die in jeder der Anweisungen enthalten ist, die wir besprechen werden, und es gibt auch eine Standard Code-Block am Ende, den wir auch am Ende des Artikels besprechen werden.

Aber bevor wir irgendetwas davon machen, lassen Sie uns ein etwas praktischeres Beispiel für ein grundlegendes Beispiel erstellen Schaltergehäuse Aussage sieht aus wie.

Nehmen wir an, wir haben einen Wert, $ first_name, und dann wollen wir eine bestimmte Vorgehensweise einleiten, die auf dem Vornamen der Person basiert. In diesem Beispiel legen wir die E-Mail-Adresse einer Person basierend auf ihrem Vornamen fest. Wenn wir den Vornamen der Person nicht erkennen, setzen wir den Wert auf Null.

Sicher, es ist ein bisschen ein erfundenes Beispiel, aber es wird den Punkt demonstrieren:

Schauen wir uns den Kontrollfluss im obigen Beispiel an:

  • Wir definieren a $ personen_name als 'Tom' und wir initialisieren das $ email_address als leere Zeichenfolge.
  • Wir passieren dann die $ personen_name zur switch-Anweisung zur Auswertung.
  • Die Kontrollstruktur bewertet das $ personen_name gegen jeden in der case-Anweisung angegebenen Wert.
  • Da 'Tom' der Wert von ist $ personen_name, dann ist die $ email_address wird auf '[email protected]' gesetzt

Wenn wir "David" als den $ personen_name dann $ email_address würde auf "[email protected]" gesetzt werden.

Als nächstes würden wir passieren irgendein anderer Name als 'Tom' oder 'David', dann der $ email_address wäre auf gesetzt NULL. Es ist auch wichtig, das zu beachten Schaltergehäuse ist case sensitive. Dies bedeutet, dass, wenn Sie "Tom" anstelle von "Tom" übergeben, diese als unterschiedliche Fälle behandelt werden.

Beachten Sie schließlich, dass jeder Fall endet mit einem brechen Aussage. Das ist wichtig, weil brechen weist den Code an, aus dem zu springen Schaltergehäuse Anweisung und arbeiten weiter an dem Code, der als nächstes kommt.

Es ist äußerst wichtig zu verstehen, dass, wenn Sie eine break-Anweisung vergessen, diese sofort auf die Nächster Fallaussage, die offensichtlich unregelmäßige Ergebnisse haben kann (z. B. falsche Einstellung) $ email_address).

Ein Beispiel, wo Sie dies zu Ihrem Vorteil nutzen können, ist wie folgt:

Im obigen Beispiel haben wir Fälle für beide Fälle definiert, bei denen es sich um Kleinbuchstaben handelt oder wenn der erste Buchstabe großgeschrieben wurde, und es wird demonstriert, wie der Code zum nächsten durchgeht Fall Aussage.

Aber es gibt einen noch besseren Weg, dies kugelsicherer zu machen:

Beachten Sie, dass dies die PHP-Funktion erfordert strolinger um den ankommenden zu zwingen $ personen_name vollständig unterschritten sein. Dies ermöglicht uns, unsere Fallaussagen noch weiter zu verfeinern.

Was kommt als nächstes??

In diesem Artikel haben wir uns die erste von zwei Gruppen von Kontrollstrukturen angesehen, die uns in PHP zur Verfügung stehen. Nein, diese sind nicht explizit Teil der objektorientierten Programmierung, aber bevor wir über grundlegende Aspekte des Paradigmas sprechen können, müssen wir alle Feinheiten verstehen, die es uns ermöglichen, objektorientierten Code zu schreiben.

Zu diesem Zweck werden wir die Diskussion über Kontrollstrukturen im nächsten Artikel mit Schleifen fortsetzen. 

Danach können wir uns auf Funktionen konzentrieren. Für diejenigen, die mit der prozeduralen Programmierung vertraut sind, sind Funktionen nichts Neues. Wenn Sie sich jedoch mit objektorientierter Programmierung noch nicht auskennen, gibt es eine Reihe von Faktoren, die sie von der Verwendung in der prozeduralen Programmierung unterscheiden.

Das ist also die Roadmap für die nächsten Artikel. Wie immer ist Feedback immer willkommen und ich freue mich darauf, unsere Diskussion im nächsten Artikel fortzusetzen.