• 締切済み

functionの使い方について

バージョンはPHP: 5.2.6です。 PHPの練習で普通の掲示板を作っているのですが、formからラジオボタンで name=color value=1やname=color value=2 などを色選択で持ってきているのですが、 f($color=="1"){ $color="#333333"; }else if($color=="2"){ $color="#999999"; }else if($color=="3"){ $color="#FF0000"; }else if($color=="4"){ $color="#0000FF"; } 上記で判別して$colorに色情報を渡したのですが、メンテナンス性が悪いと感じました。プログラムは上記で正確に動きます。 いじりやすいように以下のようにしたのですが、上手くcolorに情報が渡りません。 function colorsikibetu($colorno,$colorcode){ if($color==$colorno){ echo"カラー一致しました<br />"; $color=$colorcode; }else{ echo"一致しません"; echo"カラーは $color カラーナンバーは $colorno カラーコードは $colorcode <br />"; } } colorsikibetu("1","#333333");//黒 colorsikibetu("2","#999999");//グレー colorsikibetu("3","#FF0000");//赤 colorsikibetu("4","#0000FF");//青 毎回実行されてどうやら、カラー情報がないみたいなのです。 functionの使い方が間違ってるようなのですが、 短くてすっきりした形にするには、どのようにすれば良いでしょうか。 ご教授お願いします。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

functionの中で if($color==$colorno) と使っていますが、function中に$colorがどこからも与えられていません。 ちなみにこの手のものはいくつかやり方がありますが、たとえば 配列をつくっておくだけでも、組み合わせは表現できますがどうでしょう?

bhdkgo
質問者

お礼

ヒントありがとうございました、配列で実現できました。 valueで持ってきたものを添字にして、キーと値を格納する方法で実現できました。

bhdkgo
質問者

補足

お返事ありがとうございます。 配列ですが、全く考えても見ませんでした…。 どのように書くと効率がよさそうでしょうか。 大変お手数おかけしますが、ご教授いただけますとありがたいです。

関連するQ&A