質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1891閲覧

値と表示名の組み合わせを定義する方法

msx2

総合スコア174

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

6グッド

1クリップ

投稿2016/03/09 03:52

例えば「性別」という項目が下記となっているとします。
「1」は「男性」
「2」は「女性」
「3」は「ひみつ」

この値と名称の組み合わせはいろいろな場所で使用されるので表現を統一するため定数クラスみたいなものにまとめて定義しておこうと考えています。

質問は、この組み合わせというのはどの様にしてプログラムで表現すればいいのでしょうか?

私が思いつくのは以下の方法です。今はちょっとしたプログラムを作っているのでどんな方法だろうと問題なく動いていますが、プロの方々は現場でどうされているのかご教示いただければと思います。

よろしくお願いします。

◆定数として定義する
→自分でSEX_MALEとSEX_MALE_LABELが値と名称の組み合わせであると理解して使う

PHP

1const SEX_MALE = 1; 2const SEX_FEMALE = 2; 3const SEX_UNKNOWN = 3; 4const SEX_MALE_LABEL = '男性'; 5const SEX_FEMALE_LABEL = '女性'; 6const SEX_UNKNOWN_LABEL = 'ひみつ';

◆配列に入れておく
→キーと値の組み合わせなので自然。定数でないので変更できてしまう。

PHP

1const SEX_MALE = 1; 2const SEX_FEMALE = 2; 3const SEX_UNKNOWN = 3; 4//↓はコードが実行できる場所で(__constructとか) 5static $sex = array( 6 SEX_MALE => '男性', 7 SEX_FEMALE => '女性', 8 SEX_UNKNOWN => 'ひみつ', 9 )
ao_love, luma, miyabi-sun, yunn, takushi168, Stephen_J👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

汚染がないので、classにしてもいいかもしませんね。

PHP

1class Constants { 2 const SEX_MALE = 1; 3 const SEX_FEMALE = 2; 4 const SEX_UNKNOWN = 3; 5 const SEX_MALE_LABEL = '男性'; 6 const SEX_FEMALE_LABEL = '女性'; 7 const SEX_UNKNOWN_LABEL = 'ひみつ'; 8} 9?> 10//利用時 11<?= Constants::EX_MALE_LABEL ?>

投稿2016/03/09 04:09

shi_ue

総合スコア4437

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

msx2

2016/03/09 05:31

ありがとうございました。 クラスにまとめるのも便利ですね!
guest

0

ベストアンサー

どちらも正解だと思います。
私であれば、define.php等という名前で定義専用のファイルを作ってそれをロードする形にしますね

shi_ueさんのようにクラスにまとめるのも有りだと思います。
Model等を用意していて、そのModelにしか依存していない場合はそのModelのクラスに記述するのも有りですね。

投稿2016/03/09 03:55

編集2016/03/09 04:11
fagai

総合スコア2158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

msx2

2016/03/09 05:27

回答ありがとうございます! 定義ファイルに書く、クラスにまとめる、Modelに書く、うまく使ってメンテのしやすいプログラムを作っていきたいです。 あ、ブログよく見てます(^^)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問