Tibor:
It's not a good idea to use $_ENV unless you are specifying an environmental variable. This is probably a better example that I found on another page in php.net
<?php
function test() {
$foo = "local variable";
echo '$foo in global scope: ' . $GLOBALS["foo"] . "\n";
echo '$foo in current scope: ' . $foo . "\n";
}
$foo = "Example content";
test();
?>
スーパーグローバル
スーパーグローバル — すべてのスコープで使用できる組み込みの変数
説明
PHP の定義済み変数の中には "スーパーグローバル" というものがあります。 これは、スクリプト全体を通してすべてのスコープで使用可能な変数のことです。 関数やメソッドの内部からアクセスする際にも global $variable; などとする必要はありません。
スーパーグローバルには次のようなものがあります。
変更履歴
| バージョン | 説明 |
|---|---|
| 4.1.0 | スーパーグローバルが PHP に導入されました。 |
注意
注意: 使用できる変数
デフォルトでは、すべてのスーパーグローバルが使用可能です。 ただし、それに影響を与える設定項目もあります。詳細は variables_order のドキュメントを参照ください。
注意: register_globals の扱い
非推奨の register_globals ディレクティブが on に設定されている場合は、 内部の変数もスクリプトのグローバルスコープで使用できるようになります。 たとえば $_POST['foo'] は $foo という名前でも使えるようになるということです。
関連情報については、FAQ の "register_globals の影響は?" を参照ください。
注意: 可変変数
スーパーグローバルは、関数やクラスメソッドの中の 可変変数 として使用することはできません。
スーパーグローバル
lskatz at gmail dot com
10-Oct-2008 03:51
10-Oct-2008 03:51
Tibor > rocketmachine.com
06-Oct-2008 05:00
06-Oct-2008 05:00
You can use superglobals to make your variables available everywhere without declaring them global.
<?php
$_ENV['mystring'] = 'Hello World';
$_ENV['myarray'] = array('Alpha', 'Bravo', 'Charlie');
function test() {
print $_ENV['mystring'];
print_r($_ENV['myarray']);
}
test();
?>
