4

データベースをわざわざ使いたくない場合に、単純な PHP ルックアップ テーブルが必要になることがよくあります。

たとえば、次のような場合があります。

1 stands for "Good"
2 stands for "Bad"
3 stands for "Ugly"

実装できる 2 つの方法を以下に示します。一方は他方よりも効率的ですか?これを実装するための他のより直感的な方法はありますか?

switch($code)
{
    case 1:$result="Good";break;
    case 2:$result="Bad";break;
    case 3:$result="Ugly";break;
    default:$result=NULL;
}

$array=array(1=>"Good",2=>"Bad",3=>"Ugly");
$result=$array[$code];
4

5 に答える 5

3

2番目の例。主な理由は、新しいエントリに書き込むコードが少ないことですが、より柔軟なコードでもあり、わずかに高速になる可能性があります。ただし、break ステートメントからケースを実装するには、「ルックアップ」行/関数は次のようになります。default

$result = (isset($array[$code]) ? $array[$code] : NULL;
于 2013-04-18T16:01:49.157 に答える
2

どうやら、はるかに単純な構文でこれを行うことができます。

$result=[1=>"Good",2=>"Bad",3=>"Ugly"][$code];

配列は [] の最初のペアで初期化され、特定の値は 2 番目のペアでアクセスされます

どのバージョンの php これが機能するのかわかりません。最近、ランダムなチュートリアルでこの構造に遭遇しました。詳細に出くわしたら、答えを更新します。

于 2020-10-19T17:38:08.947 に答える