定義済み変数

定義済み変数は、全てのスクリプトで使用できる。
スーパーグローバルは、関数やクラスメソッドの中の 可変変数 として使用することはできません。

$_SERVER

$_SERVER[’PHP_SELF’]

現在実行しているスクリプトのファイル名です。
ドキュメントルートからのパスを含むのでセキュリティ的に要注意

$_SERVER[’SCRIPT_NAME’]

現在のスクリプトのパス。 スクリプト自身のページを指定するのに有用です。

コマンドライン実行時の変数

$argv

コマンドラインから実行したときに、 現在のスクリプトに渡されたすべての引数の配列が格納される。
最初の引数 $argv[0] は常に、スクリプトの実行に使うファイル名となります。
この変数は、register_argc_argv<・strong> が無効になっている場合には使えません。
これは、$_SERVER[‘argv’] としても使用可能です。

<参考>関数処理 func_get_args()


<?php
	//ファイル名「script.php」
	var_dump($argv);
?>

/* コマンドラインから下記を実行
php script.php arg1 arg2 arg3
結果:
array(4) {
  [0]=>
  string(10) "script.php"
  [1]=>
  string(4) "arg1"
  [2]=>
  string(4) "arg2"
  [3]=>
  string(4) "arg3"
}
*/

$argc

コマンドラインから実行したときに、 現在のスクリプトに渡された引数の数が含まれます。
スクリプトのファイル名は、常にスクリプトへの引数として渡されます。したがって、$argc の最小値は 1 です。

<?php
	var_dump($argc);
?>

/* コマンドラインから下記を実行
php script.php arg1 arg2 arg3

結果:スクリプトのファイル名がインデックス0に渡されるので、4
int(4)
*/