Objektorientierte Programmierung in WordPress Funktionen und Attribute

Während wir unsere Diskussion der objektorientierten Programmierung im Kontext von WordPress fortsetzen, ist es Zeit für uns, über die tatsächlichen Merkmale der objektorientierten Programmierung zu sprechen.

Obwohl wir uns bereits mit Klassen befasst haben, mussten wir einige grundlegende Programmierkonstrukte untersuchen, bevor wir uns wieder einigen der objektorientierten Kernkonzepte zuwenden. 

In diesem Artikel werden wir über Funktionen und Attribute sprechen: zwei grundlegende Aspekte der objektorientierten Programmierung. Stellen Sie jedoch zunächst sicher, dass Sie mit den vorherigen Artikeln vertraut sind:

  1. Eine Einleitung
  2. Klassen
  3. Typen
  4. Kontrollstrukturen: Bedingte Anweisungen
  5. Kontrollstrukturen: Schleifen

Eines der Punkte, die ich zu dieser Serie wiederholen möchte, ist, dass wir daran arbeiten, objektorientierte Programmierung im Kontext von WordPress zu untersuchen, indem wir von den absoluten Grundlagen der Programmierung ausgehen.

Wir tun dies, um sicherzustellen, dass diejenigen, die Anfänger des Programmierens sind, alles haben, was sie brauchen, um nicht nur mit dem Programmieren zu beginnen, sondern auch um das Paradigma zu erlernen und schließlich daran zu arbeiten, ein WordPress-Plugin zu erstellen.

Lassen Sie uns mit dieser Besprechung fortfahren, indem wir über Funktionen und Attribute sprechen.

Funktionen

Für diejenigen, die mit der prozeduralen Programmierung vertraut sind, sind Sie zweifellos mit Funktionen vertraut - schließlich werden Sie mit der Arbeit fertig, richtig?

Aber für diejenigen, die gerade in die Programmierung einsteigen, gibt es zwei Dinge, die Funktionen zu verstehen sind:

  1. Sie existieren sowohl in der prozeduralen Programmierung als auch in der funktionalen Programmierung und der objektorientierten Programmierung.
  2. Sie können als eine Möglichkeit betrachtet werden, alle vorherigen Konstrukte zu einer komplexeren Arbeitseinheit zusammenzufügen.

Zum zweiten Punkt ist es richtig, dass vieles von dem, was wir zuvor besprochen haben, also Variablen, Bedingungen, Schleifen usw., auch für die Ausführung einer einzelnen Einheit verantwortlich ist. Jeder von ihnen arbeitet jedoch zusammen, um etwas Größeres als sich selbst zu erreichen.

Abhängig von der Sprache werden Sie wahrscheinlich auch hören, dass diese als Methoden oder Routinen bezeichnet werden. Unabhängig von der verwendeten Terminologie besteht der Punkt darin, dass Funktionen grundlegende Konstrukte verwenden, um eine Aktion abzuschließen.

Funktionen können auch auf drei Arten funktionieren:

  1. Funktionen können Arbeit leisten, indem sie Informationen aufnehmen und bearbeiten.
  2. Funktionen können Arbeit ausführen, indem sie Informationen an den Code zurückgeben, der sie aufgerufen hat.
  3. Funktionen können eine Arbeitseinheit ausführen, ohne dass Informationen in den Code übernommen werden, der sie aufgerufen hat. Einfach ausgedrückt, kann eine Aktion im Hintergrund ausgeführt werden.

Wir werden uns jedes dieser Szenarien in einem Moment genauer ansehen, und in einem zukünftigen Artikel werden wir sehen, wie sie im Unterricht funktionieren. Im Moment wollen wir einen Blick darauf werfen, wie Funktionen innerhalb von PHP funktionieren und einige Nuancen zu jedem einzelnen.

Einfache Funktionen

Denken Sie an den vorherigen Abschnitt, dass es Zeiten gibt, in denen wir Funktionen definieren können, die keine Eingaben akzeptieren oder Informationen zurückgeben. 

In diesem Fall führen diese Arten von Funktionen normalerweise eine bestimmte Operation aus (z. B. das Aktualisieren einer Option in der Datenbank), und sie werden nach Abschluss einer bestimmten Operation von einer anderen Funktion aufgerufen.

Nehmen wir beispielsweise an, wir haben eine Funktion, mit der wir die zugrunde liegende WordPress-Datenbank aktualisieren möchten. Dies erfordert, dass wir mehrere Dinge wissen:

  • update_option
  • Ein Schlüssel, den wir zum Speichern der Informationen verwenden werden
  • Der zu speichernde Wert wird mit dem Schlüssel abgerufen

Nehmen wir in unserem Fall an, dass wir einen Wert in der Datenbank aktualisieren möchten, der durch das gekennzeichnet ist blog_last_updated Schlüssel. Dann verwenden wir die PHP-Funktion Zeit() um die Uhrzeit zu speichern, zu der die Funktion aufgerufen wird.

Nachdem dies gesagt wurde, definieren wir unsere Funktion:

Anhand der oben gegebenen Beschreibung können Sie sehen, dass der Rumpf der Funktion die Funktion verwendet update_option WordPress-API-Funktion mit dem angegebenen Schlüssel und Wert, den wir beschrieben haben.

Dieser kann dann durch einfaches Aufrufen von einem anderen Code aufgerufen werden set_blog_updated ();.

Argumente

Funktionen, die keine Argumente akzeptieren, können nur bis zu einer bestimmten Ebene nützlich sein. An einem bestimmten Punkt müssen Sie in der Lage sein, Informationen an eine Funktion zu übergeben, damit diese Informationen berechnen, bearbeiten oder auswerten kann.

Angenommen, wir möchten die Datenbank weiterhin mit einem Zeitstempel aktualisieren, jedoch nur, wenn ein bestimmter Schlüssel an die Funktion übergeben wird. sonst machen wir nichts.

Beachten Sie, dass die Funktionssignatur, dh der Name der Funktion und die Daten in Klammern, aktualisiert wurde, um eine Variable zu akzeptieren, auf die verwiesen wird $ -Taste.

Als nächstes verwendet die Funktion eine Bedingung, um zu überprüfen, ob der Wert der Variablen gleich dem Schlüssel ist, den wir in der ersten Version der Funktion angesehen haben. Um einen einfachen Vergleich zu ermöglichen, wird der Wert von reduziert $ -Taste mit PHP strolinger Funktion.

Dies bedeutet, dass wir die Funktion auf folgende Weise aufrufen können immer noch habe es Update:

  • set_blog_updated ('BLOG_LAST_UPDATED');
  • set_blog_updated ('Blog_Last_Updated');
  • set_blog_updated ('blog_last_updated');

Alle obigen Funktionsaufrufe führen die folgende Operation aus. Wenn wir jedoch irgendetwas anderes in die Funktion übergeben würden, würde die Bedingung dazu ausreichen falsch und würde nicht Die Update-Funktion auslösen.

Zum Beispiel anrufen set_blog_updated ('not_now'); würde nicht Arbeit.

Kehrt zurück

Nehmen wir nun an, wir möchten mit der Funktion, mit der wir arbeiten, einen Wert zurückgeben. Angenommen, wir wollten einen Wert zurückgeben, ob die Aktualisierungsfunktion erfolgreich ausgelöst wurde oder nicht. 

Um dies zu erreichen, können wir eine Funktion nutzen Rückkehr Anweisung sowie den Wert, den die update_option-Funktion zurückgibt. Laut dem WordPress-Codex, update_option wird folgendes zurückgeben:

True, wenn sich der Optionswert geändert hat, false, wenn dies nicht der Fall ist oder die Aktualisierung fehlgeschlagen ist.

Zu diesem Zweck können wir unsere Funktion folgendermaßen anpassen:

Jetzt haben wir eine Funktion, die ein Argument akzeptiert, einen Wert zurückgibt und außerdem eine Bedingung nutzt, um den Wert nicht nur zu aktualisieren, sondern auch um sicherzustellen, dass der Wert erfolgreich aktualisiert wurde.

Wenn wir die obige Funktion verwenden, können wir sie wie in den vorherigen Beispielen aufrufen, aber jetzt können wir das Ergebnis in einer Variablen speichern, die es uns ermöglicht, den Code in unserem Programm weiter zu verbessern.

Zum Beispiel können wir die Funktion weiterhin aufrufen, indem Sie sagen set_blog_last_updated ('blog_last_updated'); Nun können wir aber auch das Ergebnis der Funktion in einer Variablen speichern.

Dazu müssen Sie lediglich eine Codezeile schreiben, die Folgendes ausführt: $ blog_was_updated = set_blog_last_updated ('blog_last_updated'); In diesem Fall die Variable $ blog_was_updated wird auf gesetzt wahr Wenn die Bedingung gelaufen ist und der Aktualisierungsaufruf erfolgreich war, wird dies der Fall sein falsch wenn die Bedingung nicht oder nicht gelaufen ist, aber die update_function gescheitert.

Argumente mit variabler Länge

Es gibt noch einen weiteren Aspekt von Funktionen, der über den Rahmen dieses Artikels hinausgeht, und Argumente mit variabler Länge. Kurz gesagt, es gibt eine Möglichkeit, dass eine Funktion eine Reihe von Argumenten akzeptieren kann, die wir beim Schreiben von Code nicht erwarten können.

 Wenn Sie sich für das Lesen im Voraus interessieren, können Sie den Artikel im PHP-Handbuch nachlesen. Wir werden dies jedoch später in der Serie behandeln.

Attribute

An diesem Punkt werden wir umschalten und über etwas sprechen, das rein mit objektorientierter Programmierung und Klassenattributen zusammenhängt.

Erinnern Sie sich aus unserer Diskussion über Klassen, dass wir uns eine Beispielklasse für a angesehen haben Blogeintrag. Als Referenz sah der Code so aus:

Klasse Blog_Post privater $ Autor; privates $ publish_date; private $ is_published; public function publish () // Artikel hier veröffentlichen public function delete () // Artikel hier löschen

An diesem Punkt der Serie sollten Sie die Klassendefinition, die Funktionsdefinition und die Attribute leicht identifizieren können.

Bei den Attributen handelt es sich insbesondere um die drei Variablen, die oben in der Datei über den Funktionen vorhanden sind. Wie im Artikel über Klassen beschrieben, können Attribute als Adjektive betrachtet werden, die die Klasse beschreiben.

Im obigen Beispiel haben wir eine Klasse, die einen Blogbeitrag darstellt, und ein Blogbeitrag kann durch den Autor, sein Veröffentlichungsdatum und ob er veröffentlicht wurde oder nicht, beschrieben werden.

Diese besonderen Werte sind nichts weiter als Variablen, wie wir sie uns zuvor in der Serie angesehen haben, und sie können jeden Werttyp enthalten, sei es ein primitiver Datentyp, beispielsweise ein String, eine Ganzzahl, ein Boolean oder ein komplexerer Datentyp, z als Array oder ein anderes Objekt.

Der Sinn von Attributen ist, dass sie am vorhanden sind Klassenstufe. Dies bedeutet, dass die Variablen in allen Funktionen verwendet werden können, die in der Klasse definiert sind. Sie müssen nicht als Funktionsargumente übergeben werden. Sie können aktualisiert werden, um den Status des Objekts an einem beliebigen Zeitpunkt während des Befehls anzuzeigen Laufzeit. 

Nun, in Bezug auf Wie Wenn sie gesetzt sind, geschieht dies im Kontext eines speziellen Funktionstyps, der als Konstruktor bezeichnet wird. Kurz gesagt, ein Konstruktor ist eine Funktion, die speziell zur Initialisierung einer Klasse vorgesehen ist, und in vielen Fällen wird sie zum Initiieren von Werten verwendet.

In PHP ist ein Konstruktor eine Funktion mit dem Namen __konstruieren Das ist ein reserviertes Wort in der Sprache. In Anbetracht der oben genannten Attribute und unserer Einführung in die Funktionen können wir unsere Attribute initialisieren:

Klasse Blog_Post privater $ Autor; privates $ publish_date; private $ is_published; öffentliche Funktion __construct () $ this-> author = "; $ this-> publish_date = null; $ this-> is_published = false; öffentliche Funktion publish () // Artikel hier veröffentlichen öffentliche Funktion delete ()  // den Artikel hier löschen

Eines der wichtigsten Dinge, die aus dem obigen Code entfernt werden müssen, ist, dass Attribute etwas anders sind als normale Variablen. Beachten Sie insbesondere, dass auf sie verwiesen wird $ das Stichwort. Dies unterscheidet Attribute von normalen Variablen innerhalb einer Klassendefinition.

Beachten Sie zweitens, dass die Variablen, die auf die Anfangswerte gesetzt werden. So wie es jetzt steht, wird jeder erstellte Blogbeitrag erstellt nicht einen Autor haben, der angegeben wird, wird es nicht ein Veröffentlichungsdatum haben, und es wird nicht einen Zustand der Veröffentlichung haben.

Wenn wir uns weiter mit der objektorientierten Programmierung beschäftigen, werden wir darüber sprechen, wie Variablen festgelegt werden, wie sie in der gesamten Klasse verwendet werden können, wie sie gesetzt, abgerufen werden können usw..

Öffentlich, privat und was?

Bei diesen scharfsinnigen Lesern haben Sie wahrscheinlich bemerkt, dass die Schlüsselwörter im gesamten Code verwendet werden, z Öffentlichkeit und Privatgelände. Es gibt auch ein anderes Schlüsselwort, das in der objektorientierten Programmierung verwendet wird geschützt.

Wir werden im nächsten Artikel ausführlich auf jedes davon eingehen.

Im Anschluss

Wie bereits erwähnt, gibt es eine Reihe von Schlüsselwörtern, mit denen auf Attribute und Funktionen verwiesen wird, die sich ausschließlich auf das beziehen, was bekannt ist Umfang. Im nächsten Artikel werden wir den Variablen- und Funktionsumfang untersuchen, der eine Kernidee in der objektorientierten Programmierung darstellt.

Da wir uns mit allen grundlegenden Elementen der Programmierung in PHP befasst haben, bereiten wir uns nun auf die objektorientierte Programmierung vor. Anschließend werden wir die Konzepte und Techniken in der WordPress-Entwicklung anwenden.