###前提・実現したいこと
プログラミング初心者です
progateというプログラミング学習サイトでフォームの作成を学習しているのですが、一部理解できない点があります。
###理解できていない点
for文と文字列の連結を用いて、6から100までのoptionをechoさせようとしているのですが、
①<option></option>を「' '」でそれぞれ囲まなければいけない理由
②"'.$i.'"のように「" "」と「' '」で二重で囲まないといけない理由
の2つが理解できていません。
###ソースコード
<?php for($i=6; $i<=100; $i++){ echo '<option value="'.$i.'">'.$i.'</option>'; } ?>気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
<option></option>を「' '」でそれぞれ囲まなければいけない理由
プログラムで扱えるデータには、数値、文字列などがあります。数値は0~9とせいぜい小数点と符号くらいで表現できますが、文字列にはどんな文字も書けます。なので、文字列とプログラムの他の部分を区別するために、文字列は引用符("
または'
)で囲みます。
例えば、
echo ・・・・・・ PHPで何かを出力する命令
"echo" ・・・・・ echoという4文字の英字の文字列データ
のように区別します。
"'.$i.'"のように「" "」と「' '」で二重で囲まないといけない理由
二重で囲んでいるわけではありません。分かち書きすると、
PHP
1echo '<option value="' 2 .$i 3 .'">' 4 .$i 5 .'</option>' 6;
のように、5つの要素を「文字列連結演算子」.
でつないだものです。
5つの要素とは、
'
で囲まれた文字列、
変数$i
、
'
で囲まれた文字列、
変数$i
、
'
で囲まれた文字列、
の5つです。
投稿2015/10/12 10:02
総合スコア84507
0
ベストアンサー
'<option value="'.$i.'">'.$i.'</option>'
の部分が一つの文字列を形成しているわけではありません。分解すると、下記のようになります。
PHP
1<?php 2for ($i = 6; $i <= 100; $i++) { 3 echo 4 '<option value="' // <option value=" という文字列 5 . // 文字列結合演算子 6 $i // 数値 $i を表現する文字列 (文字列結合演算子により自動変換) 7 . // 文字列結合演算子 8 '">' // "> という文字列 9 . // 文字列結合演算子 10 $i // 数値 $i を表現する文字列 (文字列結合演算子により自動変換) 11 . // 文字列結合演算子 12 '</option>' // </option> という文字列 13 ; 14}
'<option value="'
が'…'
と引用符(')で囲まれているのは表示したい文字列「<option value="」の中に二重引用符(")があるからです。"…"
と二重引用符(")で囲んでしまうと、エスケープしない限り使えません。'">'
も同じ理由です。最後の'</option>'
は引用符(')でも二重引用符(")のどちらで囲っても問題ありませんが、統一性を考慮して引用符(')を使用しているのだと思われます。
そして、.
は文字列結合演算子であり、前後の文字列を結合しているだけです。言ってみれば+
の文字列版みたいなものです。$iは数値ですが、文字列結合演算子で結合するときは自動的に数値を表す文字列になります。上のはコードはやり過ぎですが、わかりやすくなるように演算子の前後は空白を開けて、
'<option value="' . $i . '">' . $i . '</option>'
と書くと理解がしやすくなると思います。
投稿2015/10/12 10:14
総合スコア21735
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/12 11:53
2015/10/12 14:54
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/12 11:02
退会済みユーザー
2015/10/12 12:40
2015/10/12 13:22
2015/10/12 14:57