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