いくつかの選択可能な基準を提供するいくつかのドロップダウン ボックスから POST された入力を取得し、最後に一意のコードを含む 1 つ以上の文字列変数を吐き出す小さな PHP スクリプトを作成するように依頼されました。
変数名は $thingPlaceType の形式で、それぞれが一意です。ドロップダウン ボックスでは、次の項目を選択できます。
- 1つの「もの」またはすべての「もの」を一緒に
- 1 つの「場所」またはすべての「場所」を一緒に
- 1 つの「タイプ」またはすべての「タイプ」を一緒に
ネストされた switch ステートメントに頼らずにこれらのコードを選択する方法がわかりません。
switch($_POST['thing'])
{
case "thing1":
switch($_POST['place'])
{
case "place1":
switch($_POST['type'])
{
case "type1":
$output = $thing1Place1Type1;
case "type2":
$output = $thing1Place1Type2;
case "alltypes":
$output = $thing1Place1Type1.$thing1Place1Type2.$thing1PlaceType3;
}
case "place2":
...
case "allplaces":
...
}
case "thing2":
switch($_POST['place'])
{
case "place1":
switch($_POST['type'])
{
case "type1":
$output = $thing1Place1Type1;
...
...
...
}
コードが Arrow Anti-Pattern に変わっているようです。多次元配列、または値とキーを照合する単一の配列を使用して、何かできる可能性があると考えています。しかし、私はそれがストローを握っていると感じており、私が見逃しているものがあるに違いありません. 文字列をプロパティを持つ適切なオブジェクトに変換する時が来ましたか?