変数定義
先頭は、英字orアンダースコア
大文字、小文字は区別される
$temp
$_temp
$123temp これはエラー。先頭が数字
変数スコープ
関数外で宣言 グローバルスコープ
関数内で宣言 ローカルスコープ
関数内でグローバル変数を使用する
2つ手段がある
- global $a; //関数内で使いたいグローバル変数を宣言する
- $GLOBALS['a'] //スーパーグローバルのGLOBALS配列から取り出す
※スーパーグローバルは全てのスコープ内で有効なため、上記のグローバル宣言は必要ない
https://secure.php.net/manual/ja/language.variables.scope.php
配列$GLOBALSは連想配列であり、グローバル変数の 名前がキー、その変数の内容が配列要素の値となっています。 $GLOBALS は スーパーグローバル であるため、$GLOBALSは全てのスコープに存在します。
サンプル
$a = 10;
$b = 20;
function AddNum(){
global $a, $b; //グローバル変数の$a, $bを使う宣言
return $a + $b;
}
echo AddNum(); //出力=30
GLOBALSを使ったパターン
function AddNum(){
return $GLOBALS['a'] + $GLOBALS['b'];
}
echo AddNum(); //出力=30
サンプル2
$a = 10;
$b = 20;
function AddNum(){
//下記は間違い。global宣言をせずに使用している。
//これだと$a,b は関数内で定義されたローカル変数$a,bとして扱われる
//よって下記の$a,b = NULL
return $a + $b;
}
echo AddNum(); //出力=NULL
静的変数 static
静的変数
static 変数名
コード
function CountKeep(){
static $count = 0;
return ++$count;
}
定義済みの変数
- $GLOBALS
グローバルスコープで使用可能なすべての変数への参照 - $_SERVER
サーバー情報および実行時の環境情報 - $_GET
HTTP GET 変数 - $_POST
HTTP POST 変数 - $_FILES
HTTP ファイルアップロード変数 - $_REQUEST
HTTP リクエスト変数 - $_SESSION
セッション変数 - $_ENV
環境変数 - $_COOKIE
HTTP クッキー - $php_errormsg
直近のエラーメッセージ - $HTTP_RAW_POST_DATA
生の POST データ - $http_response_header
HTTP レスポンスヘッダ - $argc
スクリプトに渡された引数の数 - $argv
スクリプトに渡された引数の配列