Die WordPress-Codierungsstandards Die Ternary Operator- und Yoda-Bedingungen

An diesem Punkt der Serie haben wir eine Menge Boden hinter uns gebracht. Bisher haben wir die folgenden Themen behandelt:

  • Namenskonventionen und Funktionsargumente
  • Die Verwendung von einfachen Anführungszeichen und doppelten Anführungszeichen
  • Einrückung, Speicherplatznutzung und nachfolgende Leerzeichen
  • Klammerstil, reguläre Ausdrücke und PHP-Tags

Viel Zeug, richtig?

In diesem Artikel dachte ich, wir würden es ein bisschen leichter nehmen, bevor wir uns dem letzten Thema nähern. Deshalb werden wir zwei wirklich einfache Themen behandeln (die oft ignoriert oder zu kompliziert sind)..

Insbesondere werden wir über den ternären Operator und über die Yoda-Bedingungen sprechen.


Ein Wort zu WordPress-Bedingungen

Wenn es darum geht, auf WordPress basierenden Code zu schreiben, sagen die Coding Standards strikt, dass wir zuerst die Lesbarkeit anstreben sollten. Direkt aus dem Kodex:

Im Allgemeinen ist Lesbarkeit wichtiger als Klugheit oder Kürze.

Aber dort ist ein bisschen nuance dazu. Einige Entwickler halten den ternären Operator für ein wenig im Widerspruch zu diesem bestimmten Prinzip, insbesondere weil er noch eine andere Art des Schreibens ist ansonsten Aussage, und wenn der Entwickler nicht mit dem Schreiben oder Lesen des ternären Operators vertraut ist, verstößt dies gegen diesen Grundsatz.

Wir werden uns dies gleich genauer ansehen.


Der ternäre Operator

Erstens, für diejenigen, die nicht vertraut sind, ist der ternäre Operator eine vereinfachte Schreibweise ansonsten Bedingungsanweisung. Es wird normalerweise verwendet nur wenn die Bedingung die einfachste Form ist und nur wenn es eine einzige gibt ob und eine einzige sonst Block.

Angenommen, wir haben eine Bedingung wie diese:

 $ use_gasoline = null; if ('hybrid' == $ car_type) $ uses_gasoline = false;  else $ uses_gasoline = true;  echo $ use_gasoline;

Sicher, das ist ein bisschen ein erfundenes Beispiel, aber Sie verstehen den Punkt. Schließlich versuche ich einfach zu demonstrieren, wie man eine solche Bedingung in eine vom ternären Operator verwendete Form umwandelt.

In Übereinstimmung mit dem obigen Beispiel können Sie Folgendes tun:

 $ uses_gasoline = 'hybrid' == $ car_type? Falsch Richtig; echo $ use_gasoline;

Sinn ergeben? Eine wichtige Sache zu beachten: Der ternäre Operator prüft auf wahr (statt falsch)..

Für das, was es wert ist, finde ich, dass dies dem Lesen eines Satzes sehr ähnlich ist. Die erste Klausel stellt eine Frage (offensichtlich durch ein Fragezeichen hervorgehoben), wobei die beiden möglichen Antworten basierend auf der Bewertung der Bedingung zurückgegeben werden.

Dort ist ein Vorbehalt für die Überprüfung auf "true", der im Codex dokumentiert ist:

Eine Ausnahme wäre die Verwendung ! leeren(), da das Testen auf false hier allgemein eher intuitiv ist.

Nach meiner Erfahrung war dies der einzige Zeitpunkt, um eine negative Bewertung in der Bedingung zu verwenden. Während der gesamten Zeit, in der ich mit dem ternären Operator gearbeitet habe, habe ich festgestellt, dass das Testen auf falsch die ternäre Auswertung oft schwieriger zu entschlüsseln vermag.

Darüber hinaus habe ich festgestellt, dass es am besten ist, eine einzige Bewertung bereitzustellen könnte sein zwei Bewertungen unter sehr einfachen und klaren Umständen.

Anders als das, das ist wie Sie den ternären Operator in Ihrer täglichen WordPress-Arbeit einsetzen können


Yoda-Bedingungen

Wenn Sie genau mitverfolgt haben, werden Sie feststellen, dass ich etwas getan habe, das die meisten Programmiersprachen (oder sogar PHP-basierte Plattformen außerhalb von WordPress) nicht regelmäßig tun:

Der Vergleich der Bedingung wurde durchgeführt, indem der Wert mit der Variablen verglichen wurde. nicht umgekehrt.

Normalerweise sehen wir so etwas:

 $ use_gasoline = null; if ($ car_type == 'hybrid') $ uses_gasoline = false;  else $ uses_gasoline = true;  echo $ use_gasoline;

Und der entsprechende ternäre Operator würde ungefähr so ​​aussehen:

 $ uses_gasoline = $ car_type == 'hybrid'? Falsch Richtig; echo $ use_gasoline;

Also wenn die Mehrheit der Programmiersprachen und Plattformen nicht Verwenden Sie Yoda-Bedingungen, warum dann WordPress?

Gemäß dem Kodex:

Wenn Sie im obigen Beispiel ein Gleichheitszeichen weglassen (geben Sie zu, es passiert sogar den erfahrensten von uns), erhalten Sie einen Parser-Fehler, da Sie keine Konstante wie zuweisen können wahr. Wenn die Aussage umgekehrt wäre ($ the_force = true), der Auftrag wäre vollkommen gültig und würde zurückkehren 1, Veranlassen, dass die if-Anweisung ausgewertet wird wahr, und Sie könnten diesen Fehler für eine Weile verfolgen.

Meiner Meinung nach ist dies eine wirklich sehr gute Erklärung für solche Vergleiche insbesondere in dynamisch typisierten Sprachen wie PHP und JavaScript.

Unabhängig davon, ob Sie mit dieser Vorgehensweise einverstanden sind oder nicht ist Teil des Standards und Sie sind Dies wird durch den Kern von WordPress, Themes, Plugins, Artikel und mehr angezeigt.

Zu diesem Zweck empfehle ich dringend, in Ihrer eigenen Arbeit mit der Umsetzung zu beginnen.


Fazit

Wie ich anfangs erwähnt habe, würde dieser Beitrag viel einfacher und unkomplizierter sein als das andere Material, das wir bisher in der Serie behandelt haben.

An dieser Stelle haben wir nur ein weiteres Hauptthema: Datenbankabfragen.

Danach werden wir alle Themen, die wir in dieser Serie behandelt haben, überprüfen, um die Prinzipien zusammenzufassen, die wir aus den Coding-Standards enthalten.

Zunächst aber zu Datenbankabfragen.