変数
書式: $
$の直後は「_(アンダーバー)」か英字にします。数字は使えません。
2文字目以降は英数字と「_」が使えます。
しかし、「$_」で始まる変数はサーバ側で定義するのに使用されるため変数を定義する場合には
避けたほうが良いと思われます。
phpでの変数はc言語などの変数と違って、{}内で定義されても、{}の外で使うことが出来ます。
しかし、複数のページにまたがって変数を使いたい場合は「global」宣言をする必要があります。
また、phpでは変数を代入しただけではコピーが出来ません。
変数の値を変更したとき初めてコピーがつくられます。
(ここらへんは初めはあまり気にしなくても良いかと思います)
リファレンス
書式: &$xxx
書式の「$xxx」は任意の変数です。
関数内で引数で渡したデータの変更をしたい時は、関数定義時、
引数の$の前に&をつけます。関数定義時に&をつけた場合、
関数呼び出し時につけなくても動作します。
可変変数
書式: $$xxx
例:
$name = "key"; $$name = 1;
とした場合、
$key = 1;が設定されます
連想配列を変数に展開する場合などに便利です。
サーバ定義の変数
$_GET
フォームなどからgetメソッドで送信された配列です。
通常URLの後ろに「?」をつけ、変数名=値で送信されます。
例:http://www.t-net.ne.jp/~cyfis/index.php?key1=val1&key2=val2
上のようなURLで送られてきたページ(index.php)では
$_GET['key1']で「val1」を、$_GET['key2']で「val2」を取り出せます。
$_POST
フォームからPOSTメソッドを使って送信されたフォームフィールドの値を保持した配列です。
$_GET、$_POSTの連想配列のキーはフォーム要素でname属性を指定した値になり、
値は通常、valueで指定した値か入力、選択された値になります。
値についての例外はhtmlの部屋のボタン「IEの挙動不審」を見てください
$_COOKIE
COOKIEの値を保持した連想配列です。
$_FILES
httpファイルアップロード用の配列です。
input要素のnameをキーとしたファイルごとの連想配列になっています。
以下はファイルごとの連想配列内のメンバです。
- ['name'] アップロードされたデータのファイル名です
- ['type'] アップロードされたデータのMIMEタイプです
- ['size'] アップロードされたデータのサイズ(バイト)です
- ['tmp_name'] アップロードされたデータの添付ファイル名です
- ['error'] エラーコードです
エラーコードは以下の通りです。
- UPLOAD_ERR_OK アップロード成功
- UPLOAD_ERR_INI_SIZE ファイルサイズがupload_max_filesizeを超えている
- UPLOAD_ERR_FORM_SIZE ファイルサイズがフォームで指定されたMAX_FILE_SIZEを超えている
- UPLOAD_ERR_PARTIAL ファイルの一部しかアップロードされていない
- UPLOAD_ERR_NO_FILE ファイルはアップロードされていない
$_REQUEST
ユーザから送信された情報を保存した配列($_GET、$_POSTおよび$_COOKIE)が格納されます。
下位互換のための変数なので$_GET、$_POST、および$_COOKIEを使う方が好ましいとされています。
$_SERVER
webサーバに関する情報を保存した配列です。
よく使われるメンバに以下のものがあります。
- PHP_SELF 現在実行中のスクリプトのドキュメントルートに対する相対パスが格納されています
- DOCUMENT_ROOT サーバのルートディレクトリが格納されています
$GLOBALS
グローバル変数用の連想配列です。
$_ENV
環境変数を保存した連想配列です。
$_SESSION
httpセッション情報を保存した連想配列です。