PHP und ternäre Performance

June 18

Die bedingte Anweisung ist grundlegend in den meisten Programmiersprachen. Die Möglichkeit, den Ablauf eines Programms steuern macht Entscheidungsfindung im Code eine Möglichkeit. Zwar gibt es eine Vielzahl von Bedingungen über verschiedene Programmiersprachen, bleiben wenige gleich. Die "if"-Anweisung ist eine dieser Anweisungen, und oft auch seine Kurzschrift-Version der "ternäre" Operator ist. Bietet aber auch während der ternären Programmierern eine einfache Möglichkeit, einfache "If-else" Aussagen auszudrücken gibt, es nicht immer die gleiche Wirksamkeit wie ist offensichtlich in der Programmiersprache PHP.

PHP-Bedingungen

PHP-Bedingungen helfen das Programmierer-Steuerelement die Strömung eines Programms während der Ausführung abhängig vom Status bestimmter Variablen. Diese bedingten Anweisungen kommen in zwei Grundformen: ElseIf Bedingungen und Schleifen. Wichtig, in diesem Beispiel ist die sonst-wenn-Anweisung, die nimmt einer bedingten Anweisung und berechnet einen Wert true oder falschen daraus. Abhängig von diesem Wert wird die Anweisung entweder eine Aufgabe auszuführen, oder eine andere Aufgabe ausführen. Eine else-If-Anweisung ist wie ein "entweder-oder"-Szenario. Entweder wird es eine Aufgabe ausführt, oder nicht.

Ternäre Operator PHP

Um Code mehr lesbar oder leichter zu schreiben, müssen einige Bedingungen Kurzschrift Ausdrücke. Kurzschreibweise für eine "else If"-Anweisung in PHP und vielen anderen Sprachen, ist der "ternäre" Operator. Der ternäre Operator in PHP verwendet ein Fragezeichen und einen Doppelpunkt als Teil seiner Syntax. Der ternäre Operator wertet einen Begriff true oder falschen und führt eine der beiden Vorgänge basierend auf dem Ergebnis. Das folgende Beispiel veranschaulicht einen ternären Ausdruck: Wenn Anweisung 1 wahr ist, dann 2-Anweisung ausführt. Wenn dies nicht der Fall ist, dann 3-Anweisung ausführt:

(statement_1)? Statement_2: statement_3;

Kopieren Sie auf Write

In den meisten Punkten wird die ternäre Operation identisch mit einer einfachen "else If"-Anweisung. Ein besonderer Unterschied ist, dass Ternäre Operatoren kopieren den Rückgabewert von seiner Anweisung Bewertung jedes Mal, dass er gelesen wird. Die PHP-Sprache außerhalb dieser Ausdruck verwendet eine Technik, genannt "Copy-on-Write." Dies bedeutet, dass wenn Sie Variablen Werte zuweisen, der PHP-Interpreter nicht diesen Wert kopieren wird bis die Variable geändert wird. Die Variable enthält nur einen Verweis auf diesen Wert. Der ternäre Operator, kopiert jedoch immer den Wert.

TERNÄRE Performance

Da PHP die Copy-on-Write-Technik verwendet, kopieren Ausdrücke wie eine else-If-Anweisung wiederholt Werte beim Ausführen nicht. Ein ternärer Operator, auf der anderen Seite tut. Beim Durchführen einer kleinen Anzahl von Operationen, z. B. einem einzigen Vorgang oder eine kleine Schleife, vernachlässigbar der Performance-Unterschied zwischen einer ElseIf Anweisung und eine ternäre Anweisung. Wenn Operationen über große Mengen von Iterationen zu wachsen weiter, ist jedoch der ternäre Operator gezeigt, viel langsamer als eine einfache ElseIf Anweisung ausgeführt.