質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

3回答

1314閲覧

プロゲートの中の問題について質問です(変数展開とは?)

takawork

総合スコア95

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

1グッド

1クリップ

投稿2020/08/23 16:33

一番下のボックスが答えなのですが、

echo "<option value='{$i}'>{$i}</option>";

でなで'{}'や{}が使われてるのでしょうか?
これらが無くても機能しました。
解説を見たら突然「変数展開」とだけ書いてあり、なぜ使われてのか必要性がよく分かりませんでした。
解説お願いします。

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Progate</title> <link rel="stylesheet" type="text/css" href="stylesheet.css"> </head> <body> <div class="header"> <div class="header-left">Progate</div> <div class="header-right"> <ul> <li>会社概要</li> <li>採用</li> <li class="selected">お問い合わせ</li> </ul> </div> </div> <div class="main"> <div class="contact-form"> <div class="form-title">お問い合わせ</div> <form method="post" action="sent.php"> <div class="form-item">名前</div> <input type="text" name="name"> <div class="form-item">年齢</div> <select name="age"> <option value="未選択">選択してください</option> <!-- for文を用いて6歳から100歳までをoptionで選べるようにしましょう --> <?php for($i=6;$i<=100;$i++){ echo "<option value='{$i}'>{$i}</option>"; } ?> </select> <div class="form-item">お問い合わせの種類</div> <?php $types = array('Progateに関するお問い合わせ', 'Progateに対する意見', '採用に関するお問い合わせ', '取材・メディア関連のお問い合わせ', '料金に関するお問い合わせ', 'その他'); ?> <!-- この下にselectタグを書いていきましょう --> <select name="category"> <option value="未選択">選択してください</option> <?php foreach($types as $type){ echo "<option value=$type>$type</option>"; } ?> </select> <div class="form-item">内容</div> <textarea name="body"></textarea> <input type="submit" value="送信"> </form> </div> </div> <div class="footer"> <div class="footer-left"> <ul> <li>会社概要</li> <li>採用</li> <li>お問い合わせ</li> </ul> </div> <div class="like-box"> <iframe src="https://www.facebook.com/plugins/likebox.php?href=https%3A%2F%2Fwww.facebook.com%2Fpages%2FProgate%2F742679992421539&amp;show_faces=false" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:300px;" allowTransparency="true"></iframe> </div> </div> </body> </html>
DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

miyabi_takatsuk

2020/08/23 16:37

> これらが無くても機能しました。 そんなわけないと思いますが。 無い場合と、ある場合では、 value属性の状態が違うはずです。 HTMLとして表示したあとのソースコードをもう一度見比べてください。
m.ts10806

2020/08/23 23:25

タイトルに >プロゲートの中の問題について質問です は不要かと思います。 全ての人がプロゲートを利用するわけではありませんし、 プロゲートが完全に前提だとアドバイスも得られにくいかと思います。 あくまで自身が学んでいるプログラミング言語の話だけにしてください。
guest

回答3

0

マニュアル読むと良いですよ。
変数のパース

投稿2020/08/23 22:57

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

そのケースではわかりにくい(と言うより差が出ません)が、
例えば以下のようなケース

PHP

1<?php 2 3$test = "test"; 4 5echo "this is '$test0'"; 6echo "<br>"; 7echo "this is '{$test}0'";

を実行してみてください。
明確に違いが分かると思います。

また、

PHP

1<?php 2 3$test = "test"; 4 5echo "this is '{$test}['";

PHP

1<?php 2 3$test = "test"; 4 5echo "this is '$test['";

をそれぞれ実行してみると、後者は文法エラーで実行できないことが確認出来るかと思います。

PHPではダブルクォートで囲まれた変数は変数展開されるので必ずしも{}は必要ないのですが、変数と隣り合う文字に変数名や配列として使用可能な文字が含まれた場合、どこまでが変数や配列であるかの判断が出来なくなるため、{}で明示的に変数の範囲を区切るか、一旦ダブルクォートと閉じて.で連結するなどの工夫が必要になります。

投稿2020/08/23 17:09

編集2020/08/23 17:10
tanat

総合スコア18716

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

php

1<?php 2$o = "o"; 3echo "Hell$o W$orld ";

php

1<?php 2$o = "o"; 3echo "Hell{$o} W{$o}rld ";

蛇足:個人的にはこっちのが好き(テンプレートエンジンとかこれで覚えると違和感なく入れるし)

php

1<?php 2$o = "o"; 3echo "Hell${o} W${o}rld ";

「こういうときはつけなくてもOK」「こういうときはつけないとNG」とパターンケースいちいち考えたり覚えたりするより「全部つける」としたほうが実装も統一されるので良い。

投稿2020/08/23 23:28

編集2020/08/23 23:31
m.ts10806

総合スコア80861

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問