aspもphpもみんなまとめて同じ文法にならないかな。。。
前回書きましたが、環境の関係でPHPをASPに書き換えています(途中)。
まぁ、プログラムなんて一度書いてしまえば、文法的に違う所書き換えればいいだけっしょ☆
とたかをくくっていました…orz
いえ、間違ってないです。
もとから何千行もあるプログラムでもないし、
手続き型で上から下へ行くだけの処理だったので、構造ごと変えなきゃいけない事態でもないし。
その「文法的に違う所を書き換える」だけで一苦労しただけです。。。
aspというかこの場合はvbscriptですね(この言語ももう随分レガシーですが)、
VBに触ったのが年単位で昔になってしまったので、記憶だけで書いてたら動かない動かない。。。
phpやjavaみたいに行番号がでて「ここが違ってるヨ!」みたいなの出てくれればいいものを、
「なにこれ!よくわかんない!ちゃんと処理できないから全部エラーだお!(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はいちいち分解するのが面倒。 |
アウトプット | <input type="hidden" name="name" value=<?php print(date("Y",$date)); ?> > | Response.Write("<input type=""hidden"" name=""name"" value=""" & Year(bdate) & """>") | VBScriptだとタグ内入れ込みはできない。 |
色々他にもつまったところはあるけれど。
こういうちょっとした違いは、なんでもいいから統一されればいいのに!