[解決済み] PHPで簡単なルックアップテーブルを実装する
2022-02-18 11:57:34
質問内容
データベースを使用したくない場合、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];
解決方法は?
ルックアップで何をするのかが問題です。
- キーと値のペアを検索するだけなら、配列が最適です。
-
キーによって異なるアクションを実行したい場合 - これは実際に良い使用例です
戦略パターン
- ノー
case
またはarray
という感じです。
だから
case
オプションは、拡張性が低く、実行時に変更できないため、ほとんどの場合において劣っています。
シミュレーションを行うために
default
の場合は、次のようなものを使用します。
$result = in_array($key, $lookup) ? $lookup[$key] : $default;
関連
-
[解決済み】foreach()に与えられた引数が無効です。)
-
[解決済み】SSLピア証明書またはSSHリモートキーがOKでなかった
-
[解決済み】/var/www/htmlとは何ですか?[クローズド]
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] PHPでHTML/XMLをパースして処理する方法とは?
-
[解決済み] PHPのエラーを表示させるにはどうしたらいいですか?
-
[解決済み] PHPのstartWith()関数とendsWith()関数
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】mysqli_result クラスのオブジェクトを文字列に変換できない
-
[解決済み】Apache + PHPで「ヘッダの前にスクリプトの出力が終了する」件
-
[解決済み】Phpのincludeが機能しない? 関数がincludeされない
-
[解決済み】file_get_contents( )が動作しない。
-
[解決済み] [Solved] Fatal error: メンバ関数 query() の null への呼び出し。
-
[解決済み】SSLピア証明書またはSSHリモートキーがOKでなかった
-
[解決済み] PHP - ストリームを開くのに失敗しました : そのようなファイルまたはディレクトリがありません。
-
phpのAllowed memory size of 134217728 bytes枯渇問題の解決法
-
[解決済み】Fatal error: mysqli_result 型のオブジェクトは使用できません [終了] 。
-
[解決済み] PHP と mod_fcgid: handle_request_ipc 関数で ap_pass_brigade が失敗する。