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:
In diesem Artikel werden wir über Kontrollstrukturen sprechen.
"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
AussagenSchaltergehä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.
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
AussagenWie 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
oderfalsch
.Nehmen wir zum Beispiel an, dass wir zwei Werte haben:
$ is_active
$ 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 auffalsch
.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:
$ is_active
auf true gesetzt ist, dann die $ total_count
zu einem. $ is_active
ist nicht wahr.$ 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.$ 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.
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
AussagenNachdem 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 einbrechen
Anweisung, die in jeder der Anweisungen enthalten ist, die wir besprechen werden, und es gibt auch eineStandard
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 aufNull
.Sicher, es ist ein bisschen ein erfundenes Beispiel, aber es wird den Punkt demonstrieren:
Schauen wir uns den Kontrollfluss im obigen Beispiel an:
$ personen_name
als 'Tom' und wir initialisieren das $ email_address
als leere Zeichenfolge.$ personen_name
zur switch-Anweisung zur Auswertung.$ personen_name
gegen jeden in der case-Anweisung angegebenen Wert.$ personen_name
, dann ist die $ email_address
wird auf '[email protected]' gesetztWenn 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.