では、送信されたフォームの内容は、どこでどうやって受け取っているのか。それは冒頭にある
<?php ?>タグ内にあります。ここで以下のような処理をしていますね?
$str = $_POST['text1'];
この
$_POSTというのが、送信されたフォームの内容を保管する
配列なのです。配列、覚えてますか? たくさんの値をまとめて管理することのできる特別な変数でしたね。配列はインデックス番号で、連想配列はキーという名前で値を管理していました。ということは、これは「
連想配列」というわけですね。
今回は
POSTで送信したため、この
$_POSTに内容がまとめられますが、もしGETで送信した場合には、
$_GETという配列にまとめられます。この2つの連想配列が、フォームの内容を管理するためのものなのです。
この配列には、フォームの内容が、
nameで指定された名前でまとめられています。ここでは、
name="text1"という名前でタグが用意されていましたから、
$_POST['text1']という形で値が保管されている、というわけです。
注意したいのは、この
$_GET,
$_POSTといったPHPのシステムが用意する配列は、「値を取り出すことしかできない」という点です。例えば、この値を書き換えてフォームに表示される値を設定しよう、なんて考えてもそれは無理です。これらはただ「送られたデータを渡すだけ」のもの、と考えてください。
■テキストの埋込みについて
ここでは、実はもう1つ、ちょっとしたテクニックを使ってあります。冒頭のスクリプトで、
$resultにテキストを設定している部分を見てください。
$result = "あなたは、「{$str}」と書きました。";
こんな具合に書かれていますね? この
{$str}というのは、変数
$strの値を埋めこんでいるのです。つまり、この部分に
$strの内容が埋めこまれてテキストが作成される、ということです。
ダブルクォート(")でくくられたテキストは、このように「
変数の埋込み」を行うことができます。こうすることで、さまざまな変数などを使ってテキストを生成することができるのです。
では、逆に
$strというテキストを出力させたいときは? このような場合には、
シングルクォート(')を使ってテキストを作成します。
シングルクォートのテキストでは、埋込みは行えません。すべて、書いた通りのテキストが得られるのです。
このテキストの2つの書き方の違いは、しっかり頭に入れておきましょう。