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?"
Забележка: Променливи променливи
Свръхглобалните не могат да бъдат използвани като променливи променливи в рамките на функции или методи на клас.
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();
?>
