theiNaD

Kleine ifs – große Wirkung

Kleine ifs das klingt ja süß 🙂 Ja es klingt süß gebe ich ja zu, allerdings können sie ganz schön viel für ihre größe. In der Fachsprache nennt man es „ternärer if-Operator“ und dieser ist nicht nur in PHP sondern auch in Java und anderen Sprachen vorhanden. Und das ist auch gut so, denn es erleichtert auf jeden Fall die Arbeit. Da ich ein Mensch der vergesslichen Sorte bin, vergesse ich auch andauernd diesen Trick und mache es mir komplizierter, als es eigentlich ist und somit das Script länger.

Ein Beispiel der komplizierten Art bzw. „großen“ Version:

if(isset($_GET['p'])) $var = $_GET['p'];
else $var = 0;

Die Grundidee von kurzen ifs ist simpel und sieht folgendermaßen aus:

Bedingung ? wahr : falsch

Es wird geprüft ob die Bedingung wahr ist. In unserem Fall wäre es ob der GET Parameter „p“ gesetzt ist. Da dies der Fall ist setzt wahr ein, ansonsten logischer Weise falsch.
Folgend würde dieser Fall in kurz so aussehen:

$var = (isset($_GET["p"])?$_GET["p"]:0);

Wie man sieht wurde aus 2 bis 3 Zeilen, je nachdem ob man nach dem if noch einen Umbruch macht, eine einzige Zeile.
Für alle die sich fragen, wo die geschweiften Klammern bei der „großen“ Abfrage sind kommt hier eine kurze Erläuterung:
Die Klammern dienen PHP um den Anfang und das Ende des Inhalts dieser Bedingung zu erkennen. So wie das Semikolon das Ende einer Funktion bzw. Aktion kennzeichnet. Hat man nur eine Aktion, so erkennt PHP dass diese zu dem if gehören muss. Sind es mehrere erkennt PHP jedoch nur die erste und die anderen nicht, außer man schreibt die geschweiften Klammern.

Grüßle
iNaD

Kategorien: PHP, Tipps & Tricks

Tipps & Tricks verlegt » « Output Buffering

2 Kommentarer

  1. Hey,
    ich habe mir das glücklicherweise sofort angewöhnt, als ich es damals kennen lernte. Die Kurzform des if-Statements heißt übrigens „ternärer if-Operator“ und es gibt ihn auch in anderen Sprachen wie Java oder JavaScript.

    Grüße

    • iNaD

      12. Januar 2010 — 19:29

      Dankeschön, werde ich gleich dem Text hinzufügen 😀 Man kann ja nicht alles wissen und das tue ich ja auch nicht, jedoch bemühe ich mein vorhandenes Wissen weiterzugeben 🙂

      Grüße iNaD

Kommentar verfassen

Copyright © 2017 theiNaD

Design von Anders NorenHoch ↑