Excelマクロ・VBA達人養成塾 小川です。
エクセルVBAを離れて、今日は、PHPとVBの比較の話。
複数の条件のいずれかに一致するものを選ぶ、というケース。
以下のプログラムは、セルB2に商品名が記載されていて、その商品名に応じて処理を分岐します。
VBでは、「複数の条件のいずれかに一致する場合は○○」といった条件分岐をするときは、以下のように書きます。
[1]では、商品名が「Hard X」か「ハードXR」だった場合、ハードコンタクトレンズ用の処理をします。
Sub SelectCaseTest() Dim st As String Select Case Range("B2").Value Case Is = "Hard X", "ハードXR" '[1] st = "ハードコンタクトレンズ用の処理をします" Case Is = "SOFT VIEW", "ソフトO2", "ボシュロムソフト", "メニソフト" '[2] st = "ソフトコンタクトレンズ用の処理をします" Case Is = "アイキュア", "ピュアクリーン" '[3] st = "ケア用品用の処理をします" Case Else st = "該当なし" End Select Range("C2").Value = st End Sub
PHPでは、Select Case文に対応するものとしてSwith文があるのですが、「複数条件のいずれかに該当するときは○○」というときは、以下のように書きます。
$v='SOFT VIEW'; switch($v) { case 'Hard X': case 'ハードXR': $st="ハードコンタクトレンズ用の処理をします"; break; case 'SOFT VIEW': case 'ソフトO2': case 'ボシュロムソフト': case 'メニソフト': $st="ソフトコンタクトレンズ用の処理をします"; break; case 'アイキュア': case 'ピュアクリーン': $st="ケア用品用の処理をします"; break; default: $st = "該当なし"; break; } echo $st;
個人的には、VBのスタイルのほうが、行数も少ないし文字数も少ないので好きです。
(PHPでも、そういう書き方できるのかな。どなたか、ご存じでしたら教えてください)