質問: 0; $i <= count($PrefectureList) - 1 ; $i++) { $html .= "$PrefectureList[$i]\n"; } $html .= "\n"; print $html; ?> ```
回答: まず、質問内容はfor文のことではないですね。 > > 1各行(select開始タグ、optionタグ、select終了タグ)ごとに変数$htmlがあるが、これはselectタグを使う場合は通常、各行で変数に入れていくものなのか? > > > コードをよく見てください。 最初の $html はそのあとにすぐ = が続いていますが、2回目以降は .= と ピリオドイコールになっています。 = は、変数に値を代入(入れ替え)で、.= は、連結を意味します。 例えば、次のようなコードの結果、変数 $a の中身は "ABC" になります。 ``` $a = "A"; $a .= "B"; $a .= "C"; ``` 質問にあるコードの場合、まず変数$htmlにHTML文を作成して、最後にprint文で出力していることになります。 やり方は人それぞれですが、変数$htmlに作成せずとも、都度出力してもよいです。 ``` print "\n"; ``` > > 2name=\"prefecture\" の「\」を置く規則は何か? 調べてみると、文字列を囲む""と認識されないように、とあるが、どのように使えば良いのかがわからない。 > > > 調べた結果通りですね。 つまりPHPで文字列は、"~" で表されますが、途中にダブルクォーテーションが入ると正しく認識できなくなります。 "~"~" ← これはダメ 正しく認識させるために " の前に \ を入れる必要があります。 "~\"~" これをエスケープ処理といいます。 またPHPの場合、文字列はシングルクォーテーションで表すこともできます。 '~' この場合はシングルクォーテーションで囲った中身がそのまま認識されます。 従って、 '~"~' という書き方ができます。 詳しくはマニュアルを参照してみてください。