フォームが PHP スクリプトに投稿された時、フォームから渡された全て の変数は PHP により自動的にスクリプトから使用可能となります。 設定オプションtrack_vars がオンの場合、これらの変数は、変数のソースに応じて連想配列 $HTTP_POST_VARS, $HTTP_GET_VARS, かつ/または $HTTP_POST_FILES に代入されます。
これらの変数に関する詳細については、定義済の変数を参照 下さい。
投稿された際、PHP は変数$nameを 作成します。この変数の値は、フォーム上で Name: フィールドに入力されたものとなっていま す。
PHP は、フォーム変数における配列も解釈しますが、一次元のみとなり ます。この機能は、例えば、関連する変数をグループ化したり、複数の 入力値が選択された際に値を取り出すために使用します。
track_vars の設定または <?php_track_vars?> 命令により PHP の track_vars 機能がオンにされた場合、POST または GET メソッドにより投稿された変数は、それぞれグローバル連想配列 $HTTP_POST_VARS および $HTTP_GET_VARS よりアクセスできます。
フォームを投稿する際、次のタグのように標準の投稿ボタンの代わりに 画像を使用することができます。
画像のどこかがクリックされた場合、二つの変数 sub_x および sub_y が付け加えられてこのフォームはサーバーに転送されます。これらの変 数は、ユーザーがこの画像をクリックした座標を示しています。経験の ある人は、ブラウザにより送られた変数の名前においてアンダースコア がピリオドになってしまっていることを心配するかもしれません。 しかし、PHP はピリオドをアンダースコアに自動的に変換します。
PHP は、Netscape の規約 に定 義されたHTTP クッキーを完全にサポートします。クッキーは、リモート ブラウザにデータを保持し、再訪するユーザーを追跡し、特定する機構 です。SetCookie() 関数によりクッキーをセットす ることができます。クッキーは、HTTP ヘッダの一部なので、SetCookie 関数をブラウザに何かを出力する前にコールする必要があります。 この制約は、Header() 関数のものと同じです。 クライアントから送られる全てのクッキーは、GET や POST メソッドの データと全く同じように自勧ڄに PHP 変数に変換されます。
単一のクッキーに複数の値を代入したい場合は、 [] をクッキー名に付けてください。以下に例を 示します。
クッキーは、パスまたはドメインが異ならない限り、 以前のクッキーをブラウザ上の同じ名前の変数に置き換えることに 注意してください。 さて、買い牧ϭ(Shopping Cart) プログラムの場合、カウンタを保持し、 受け渡したいと思うかもしれません。 これは、次のようになります。
PHP は、環境変数を自動的に通常の PHP 変数として使用可能とします。
情報は、GET、POST、Cookie からも自動的に来るため、意図した種類の 変数を確実に得るために環境変数から変数を明示的に取得する方が好ま しいということが時々あります。getenv() 関数を このために使用することができます。環境変数を putenv() 関数で設定することもできます。
通常、PHP はスクリプトに渡された変数の名前を変更しません。しかし、 ドット(ピリオド、終止符)はPHPの変数名で有効な文字ではないというこ とに注意する必要があります。次の例を見てみましょう。
$varname.ext; /* 無効な変数名 */
|
重要なことを記述しておくと、このため、外部変数に含まれるドットを PHP は自動的にアンダースコアに変換します。
PHPは、変数の型を定義し、必要に応じて変換します。このため、ある変 数の型がある時点で常に明らかであるわけではありません。PHPは、変数 の型を調べる複数の関数をサポートしています。それらは、 gettype(), is_long(), is_double(), is_string(), is_array(), is_object() です。