Wenn Sie von PHP sprechen und fragen, ob:
- eine Reihe von "if" s und "else ifs",
- ein "if" mit einer Reihe von "oder" ed Bedingungen (wie in den ursprünglichen Beitrag Details) oder
- Verwendung von „in_array "mit einem on-the-fly aufgebaut Array,
ist besser,
sollte man bedenken, dass die PHP-Sprache‚switch‘Anweisung ist eine Alternative für solche Situationen konzipiert und kann eine bessere Antwort sein . (Obwohl das Beispiel des Posters uns dazu bringt, nur zwei Lösungen zu vergleichen, fragt die eigentliche Fragestellung nach in_array versus PHP Statements, also denke ich, dass das faires Spiel ist).
In dem Beispiel des Plakats, dann würde ich stattdessen empfehlen:
switch ($var)
{ case 'test1': case 'test2': case 'test3': case 'test4':
echo "We have a good value"; break;
default:
echo "We do not have a good value";
}
ich PHP für ein paar nicht-primitive Konstrukte in den Fällen, wie zum Beispiel eines Komma für „oder“ erlaubt werden soll. Aber das oben Gesagte ist, was die Entwickler von PHP als den klarsten Weg angesehen haben, damit umzugehen. Und es scheint zur Ausführungszeit effizienter zu sein als die anderen beiden Alternativen.
Solange ich über eine Wunschliste rede, wäre das "IN" in SQL noch deutlicher für die Beispielsituation des Posters.
Dieses Denken ist wahrscheinlich das, was den Menschen führt zu wollen „in_array“ zu verwenden, für solche Situationen, aber es ist ein bisschen unglücklich zu haben, eine Datenstruktur zu bauen und dann ein Prädikat verwendet für diese Datenstruktur entworfen, anstatt eine Art, es einfach zu sagen, ohne dass das Overhead passiert.
Off Thema leicht - haben Sie nur Ihre andere Frage von vor ein paar Minuten gelöscht, oder werde ich verrückt? – Greg