• ベストアンサー

複数指定の方法

if ($Type == 'jpg' || $Type == 'gif') $Media->Category = 1; else if ($Type == '3gp' || $Type == '3g2') $Media->Category = 2; Categoryは上記では1~2までしかありませんが 実際には5まであります。 Typeがjpgかgifだった場合のカテゴリは1ですが これを1と3と4と5の複数に変更したいです。 このように複数にする場合はどのように記述したら良いでしょうか? Category1を選択した場合はjpg,gif Category2を選択した場合は3gp,3g2 Category3~5を選択した場合はjpg,gifに対応するという具合です。 ご教授いただけると幸いです。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
noname#111181
noname#111181
回答No.2

ANo.1で回答した者です。お礼メッセージをありがとうございます。 言われたように書くと下記のようになりますが、このスクリプトでは Typeがjpg,gifの時に必ず Category = 5 になってしまいます。まだ条件が足りないと思うのですが・・・・ ------------------------------------ if ($Type == 'jpg' || $Type == 'gif') { $Media->Category = 1; $Media->Category = 3; $Media->Category = 4; $Media->Category = 5; } else if ($Type == '3gp' || $Type == '3g2') { $Media->Category = 2; }

その他の回答 (2)

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.3

>Category3~5を選択した場合はjpg,gifに対応する この表現だと、Category の選択値が先にあって、それに応じて、type分岐ですよね? その順なら switch でも、if でも switch($Media->Category){ case 2: $Type ='3gp,3g2'; break; case 1: case 3: case 4: case 5: $Type = 'jpg,gif'; break; default: ?? } 回答1の補足での 「Typeが先に決まります。」 だと、type一個にたいして、$Media->Category という変数がスカラー値(単一の数値や文字列)である前提ならば、複数のデータを入れられません。配列にすれば、複数保持は可能。 その場合は、$Media->Category データを利用するところを軒並み配列対応に変更が必要になります。

happy7happy7
質問者

お礼

皆さん、ありがとうございました。

noname#111181
noname#111181
回答No.1

条件がよくわかりません。以下の点をお知らせください。 1.TypeとCategoryのどちらが先に決まるのですか? 2.Typeが先に決まるのだとしたら、Type=jpg/gifのとき、どのような条件でCategory=1,2,4,5の場合分けをすればよいのですか? 3.Categoryが先に決まるのだとしたら、Category=1/2/4/5のとき、どのような条件でType=jpg,gifの場合分けをすればよいのですか?

happy7happy7
質問者

お礼

回答ありがとうございます。 Typeが先に決まります。 Typeがjpg,gifの時に $Media->Category = 1; ↑これに345を追加したいです。 宜しくお願い致します。

関連するQ&A