Ankündigung

Einklappen
Keine Ankündigung bisher.

Wie am besten auf viele Werte prüfen?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wie am besten auf viele Werte prüfen?

    hiho,
    ich stehe zur Zeit vor folgendem "Problem": Habe eine Variable und möchte gerne prüfen ob diese einen Wert aus einem Set von Werten hat. Hat sie keinen der Werte will ich eine Exception werfen. Da gibts jetzt zahlreiche Möglichkeiten und ich kann mich nicht so recht entscheiden welche ich da nehmen soll. Könnt ihr mir da helfen? Hier was mir bisher eingefallen ist:
    PHP-Code:
    //Über eine simple If-Abfrage
    //Gefällt mir nicht so, da es schnell unleserlich wird
    if ($var != "wert1" AND $var != "wert2" AND ...) throw new Exception(); 
    PHP-Code:
    //Über eine Switch-Anweisung
    //Gefällt mir deswegen nicht so, weil die leeren switch-cases irgendwie unnötig sind
    switch ($var) {
        case 
    'wert1': break;
        case 
    'wert2': break;
        ...
        default: throw new 
    Exception();

    PHP-Code:
    //Über ein Array
    //Da frage ich mich ob es wirklich nötig ist extra ein Array zu definieren das sowieso nur in dieser Methode existiert
    $valid = new Array('wert1','wert2',...);
    if (
    array_search($var,$valid) === FALSE) throw new Exception(); 
    PHP-Code:
    //RegExpt
    //Finde ich vom Code her am schönsten
    //allerdings sagt man den RegExp-Funktionen nach sie seihen sehr langsam, von daher weiß ich nicht ob das das richtige ist
    if (preg_match("/^(wert1|wert2|...)$/",$var) == 0) throw new Exception(); 
    So ... ich frage mich jetzt ob von diesen Methode eine zu bevorzugen ist, sei es aus performancegründen oder wegen gutem codingstil. Oder gibt es evtl. noch eine Methode?
    Wahrscheinlich sagen sich die meisten jetzt "sch*** drauf code das ding!" ... allerdings hab ich den Anspruch nach Möglichkeit den besten Code zu schreiben und da nagen solche Dinge eben an mir

    Danke
    mfg

  • #2
    Ein $valid wie in Lösung 3 und in_array () wäre wohl das Beste. array_search erfüllt nämlich noch eine Zusatzfunktion.

    Kommentar

    Lädt...
    X