しぃぶろぐ。

仕事とか技術関係のこと。他色々

aspもphpもみんなまとめて同じ文法にならないかな。。。

前回書きましたが、環境の関係でPHPASPに書き換えています(途中)。

まぁ、プログラムなんて一度書いてしまえば、文法的に違う所書き換えればいいだけっしょ☆

とたかをくくっていました…orz

 

いえ、間違ってないです。

もとから何千行もあるプログラムでもないし、

手続き型で上から下へ行くだけの処理だったので、構造ごと変えなきゃいけない事態でもないし。

その「文法的に違う所を書き換える」だけで一苦労しただけです。。。

 

aspというかこの場合はvbscriptですね(この言語ももう随分レガシーですが)、

VBに触ったのが年単位で昔になってしまったので、記憶だけで書いてたら動かない動かない。。。

phpjavaみたいに行番号がでて「ここが違ってるヨ!」みたいなの出てくれればいいものを、

「なにこれ!よくわかんない!ちゃんと処理できないから全部エラーだお!(500)」みたいな。

文法忘れてるから、検索するわけですよ。書き方を。

ネットで見たとおりに書き直しても500エラーがバンバンとか、どうしろと!

 

導入(愚痴)が長くなってしまいましたorz

以下、今回の教訓をもとに、書き換え方法をまとめます。

 

  PHP VBScript 備考
コメント //
スラッシュ×2
'
シングルコーテーション
 
if文 if(条件式){
   処理文
}else if(条件式){
  処理文
}else{
  処理文 }
If 条件式 Then
  処理文
Else If 条件式
  処理文
Else
 処理文
End If
まず、{}じゃないのにつっかかる。
Case文 switch(条件変数){
case"1":
処理文
break;
case"2":case"3":
処理文
break;
}
select case 条件変数
case "1"
処理文
case"2","3"
処理文
end select
いちいちBreakしなくていいのは楽ちん。 
For each文 foreach(連想配列 as $key => $val){
処理文
}
For Each key In 連想配列
 処理文
Next 
valが取れないので、都度、連想配列(key)で取得。
連想配列 $dataAry = array("01" => 55);
もしくは
$dataAry["01]=55;
Dim dataAry
Set dataAry = CreateObject("Scripting.Dictionary")
dataAry.add "01",55
Scripting.Dictionaryてなに。。。
フォームからの値取得 $_POST['項目'] Request.Form("項目") 変数で持ってないのか。。。指定がjavascriptっぽい。
日付計算 $date = mktime(0,0,0,$Mon,$Day-1,$Year); bdate = DateAdd("d",-1,fdate) VBScriptは関数がある
phpはいちいち分解するのが面倒。
アウトプット &ltinput type="hidden" name="name" value=&lt?php print(date("Y",$date)); ?> > Response.Write("&ltinput type=""hidden"" name=""name"" value=""" & Year(bdate) & """>") VBScriptだとタグ内入れ込みはできない

色々他にもつまったところはあるけれど。

こういうちょっとした違いは、なんでもいいから統一されればいいのに!